Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] Qt6 6.7.2
@ 2024-06-23  3:44 sgn
  2024-06-23  7:51 ` [PR PATCH] [Updated] " sgn
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: sgn @ 2024-06-23  3:44 UTC (permalink / raw)
  To: ml

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

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

https://github.com/sgn/void-packages qt6-6.7.2
https://github.com/void-linux/void-packages/pull/50942

Qt6 6.7.2
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**|**briefly**|**NO**

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


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

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

From 989288106201c7d4010c2227153e66aa19efa06e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:27 +0700
Subject: [PATCH 01/52] New package: re2.10-2023.03.01

---
 srcpkgs/libre2.10/template | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)
 create mode 100644 srcpkgs/libre2.10/template

diff --git a/srcpkgs/libre2.10/template b/srcpkgs/libre2.10/template
new file mode 100644
index 00000000000000..26b58572de9d53
--- /dev/null
+++ b/srcpkgs/libre2.10/template
@@ -0,0 +1,24 @@
+# Template file for 'libre2.10'
+#
+# packaged to avoid rebuild electron and qt5-webengine
+pkgname=libre2.10
+version=2023.03.01
+revision=1
+build_style=gnu-makefile
+short_desc="Efficient, principled regular expression library"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="BSD-3-Clause"
+homepage="https://github.com/google/re2"
+distfiles="https://github.com/google/re2/archive/${version//./-}.tar.gz"
+checksum=7a9a4824958586980926a300b4717202485c4b4115ac031822e29aa4ef207e48
+provides="re2-${version}"
+
+post_install() {
+	# This package to provides libre2.so.10,
+	# those packages that aint rebuilt will use this package
+	# They can be rebuild with new re2-devel
+	rm -rf ${DESTDIR}/usr/include
+	rm -rf ${DESTDIR}/usr/lib/*.a
+	rm -rf ${DESTDIR}/usr/lib/*.so
+	rm -rf ${DESTDIR}/usr/lib/pkgconfig
+}

From df63e280400458e4c6801326ace07c2223111441 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:28 +0700
Subject: [PATCH 02/52] re2: update to 2024.06.01.

---
 common/shlibs                        |  2 +-
 srcpkgs/re2/patches/pkg-config.patch | 24 ++++++++++++++++++++++++
 srcpkgs/re2/template                 | 16 +++++++++++-----
 3 files changed, 36 insertions(+), 6 deletions(-)
 create mode 100644 srcpkgs/re2/patches/pkg-config.patch

diff --git a/common/shlibs b/common/shlibs
index 4ebfd6bb20f6ad..092fd9b409d500 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -1312,7 +1312,7 @@ librumpdev_audio.so.0 netbsd-rumpkernel-20140526_3
 librumpclient.so.0 netbsd-rumpkernel-20140526_3
 libdotconf.so.0 dotconf-1.3_1
 libspeechd.so.2 speech-dispatcher-0.8_1
-libre2.so.10 re2-2023.03.01_1
+libre2.so.11 re2-2024.06.01_1
 libminizip.so.1 minizip-1.2.7_1
 libsrtp2.so.1 libsrtp-2.1.0_1
 libjsoncpp.so.25 jsoncpp-1.9.5_1
diff --git a/srcpkgs/re2/patches/pkg-config.patch b/srcpkgs/re2/patches/pkg-config.patch
new file mode 100644
index 00000000000000..48171cf4caa726
--- /dev/null
+++ b/srcpkgs/re2/patches/pkg-config.patch
@@ -0,0 +1,24 @@
+--- a/re2.pc.in
++++ b/re2.pc.in
+@@ -3,7 +3,7 @@ libdir=@CMAKE_INSTALL_FULL_LIBDIR@
+ 
+ Name: re2
+ Description: RE2 is a fast, safe, thread-friendly regular expression engine.
+-Requires: @REQUIRES@
++Requires: absl_base absl_core_headers absl_strings
+ Version: @SONAME@.0.0
+ Cflags: -pthread -I${includedir}
+ Libs: -pthread -L${libdir} -lre2
+--- a/re2Config.cmake.in
++++ b/re2Config.cmake.in
+@@ -13,10 +13,6 @@ endif()
+ 
+ find_dependency(absl REQUIRED)
+ 
+-if(@RE2_USE_ICU@)
+-  find_dependency(ICU REQUIRED COMPONENTS uc)
+-endif()
+-
+ check_required_components(re2)
+ 
+ if(TARGET re2::re2)
diff --git a/srcpkgs/re2/template b/srcpkgs/re2/template
index ec6abba965ad1b..47cad9639f42c3 100644
--- a/srcpkgs/re2/template
+++ b/srcpkgs/re2/template
@@ -1,14 +1,20 @@
 # Template file for 're2'
 pkgname=re2
-version=2023.03.01
+version=2024.06.01
 revision=1
-build_style=gnu-makefile
+build_style=cmake
+configure_args="-DBUILD_SHARED_LIBS=ON -DRE2_USE_ICU=ON"
+hostmakedepends="pkg-config"
+makedepends="abseil-cpp-devel icu-devel"
+# This dependency to avoid rebuild electron with new re2
+# Drop whenever those packages are rebuilt or dropped
+depends="libre2.10"
 short_desc="Efficient, principled regular expression library"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="BSD-3-Clause"
 homepage="https://github.com/google/re2"
 distfiles="https://github.com/google/re2/archive/${version//./-}.tar.gz"
-checksum=7a9a4824958586980926a300b4717202485c4b4115ac031822e29aa4ef207e48
+checksum=7326c74cddaa90b12090fcfc915fe7b4655723893c960ee3c2c66e85c5504b6c
 
 post_install() {
 	vlicense LICENSE
@@ -16,11 +22,11 @@ post_install() {
 
 re2-devel_package() {
 	short_desc+=" - development files"
-	depends="${sourcepkg}-${version}_${revision}"
+	depends="${sourcepkg}-${version}_${revision} abseil-cpp-devel"
 	pkg_install() {
 		vmove usr/include
-		vmove "usr/lib/*.a"
 		vmove "usr/lib/*.so"
 		vmove usr/lib/pkgconfig
+		vmove usr/lib/cmake
 	}
 }

From bcaee8a70a3c80af8622c878061d1c6f5576d5df Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 08:07:54 +0700
Subject: [PATCH 03/52] bloaty: for re2-11

---
 srcpkgs/bloaty/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/bloaty/template b/srcpkgs/bloaty/template
index 3309afa1792674..9aaead50324951 100644
--- a/srcpkgs/bloaty/template
+++ b/srcpkgs/bloaty/template
@@ -1,7 +1,7 @@
 # Template file for 'bloaty'
 pkgname=bloaty
 version=1.1
-revision=15
+revision=16
 build_style=cmake
 hostmakedepends="pkg-config protobuf"
 makedepends="capstone-devel protobuf-devel re2-devel zlib-devel"

From d9040d73ecbde856c7eb0bf8edce9b8a465c429f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 08:12:31 +0700
Subject: [PATCH 04/52] cbang: for re2-11

---
 srcpkgs/cbang/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/cbang/template b/srcpkgs/cbang/template
index ec8b5e77e39be2..8b2e502200eff6 100644
--- a/srcpkgs/cbang/template
+++ b/srcpkgs/cbang/template
@@ -1,7 +1,7 @@
 # Template file for 'cbang'
 pkgname=cbang
 version=1.8.0
-revision=2
+revision=3
 build_style=scons
 make_build_args="sharedlib=1 staticlib=1"
 make_install_args="${make_build_args}"

From dd610dc8033ca4047e7f14796b1901a75b134d36 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 08:12:31 +0700
Subject: [PATCH 05/52] grpc: for re2-11

---
 srcpkgs/grpc/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/grpc/template b/srcpkgs/grpc/template
index b2c090a9a2f7e3..ac9610bcf84a43 100644
--- a/srcpkgs/grpc/template
+++ b/srcpkgs/grpc/template
@@ -1,7 +1,7 @@
 # Template file for 'grpc'
 pkgname=grpc
 version=1.61.1
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DBUILD_SHARED_LIBS=ON
  -DgRPC_CARES_PROVIDER=package -DgRPC_PROTOBUF_PROVIDER=package

From 039f7d52d2f0902491550e7859824776c8b9b430 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 08:12:32 +0700
Subject: [PATCH 06/52] sysdig: for re2-11

---
 srcpkgs/sysdig/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/sysdig/template b/srcpkgs/sysdig/template
index 2a02d1d115b849..aecce7de10ba4f 100644
--- a/srcpkgs/sysdig/template
+++ b/srcpkgs/sysdig/template
@@ -1,7 +1,7 @@
 # Template file for 'sysdig'
 pkgname=sysdig
 version=0.33.1
-revision=6
+revision=7
 _falcover=59fb313475b82f842e9e9bbc1e0e629428c0a4cf
 build_style=cmake
 configure_args="-DSYSDIG_VERSION=${version} -DUSE_BUNDLED_DEPS=OFF

From e80bfab439bdec702608ae846f92c529ca17f4ac Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 08:12:32 +0700
Subject: [PATCH 07/52] dnsdist: for re2-11

---
 srcpkgs/dnsdist/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/dnsdist/template b/srcpkgs/dnsdist/template
index 8b6c9a089ecca4..069767d9726c36 100644
--- a/srcpkgs/dnsdist/template
+++ b/srcpkgs/dnsdist/template
@@ -1,7 +1,7 @@
 # Template file for 'dnsdist'
 pkgname=dnsdist
 version=1.9.0
-revision=1
+revision=2
 build_style=gnu-configure
 configure_args="--with-pic --with-gnu-ld --with-libsodium --with-re2
  --with-net-snmp --with-libcap --with-libssl --enable-dnscrypt --with-nghttp2

From dbb01adbd6b39a0220c726c9b909af10ae8a939a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 08:12:33 +0700
Subject: [PATCH 08/52] mtxclient: for re2-11

---
 srcpkgs/mtxclient/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/mtxclient/template b/srcpkgs/mtxclient/template
index 77413cbf199095..99d61932d3b56b 100644
--- a/srcpkgs/mtxclient/template
+++ b/srcpkgs/mtxclient/template
@@ -1,7 +1,7 @@
 # Template file for 'mtxclient'
 pkgname=mtxclient
 version=0.10.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DBUILD_LIB_TESTS=OFF -DBUILD_LIB_EXAMPLES=OFF"
 hostmakedepends="pkg-config"

From bfda57bbb4fc92f57ca35f0d7430f95ec6ffeea9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 08:12:33 +0700
Subject: [PATCH 09/52] python3-grpcio: for re2-11

---
 srcpkgs/python3-grpcio/template | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/srcpkgs/python3-grpcio/template b/srcpkgs/python3-grpcio/template
index ee25192910a3ad..c255fca6481415 100644
--- a/srcpkgs/python3-grpcio/template
+++ b/srcpkgs/python3-grpcio/template
@@ -1,7 +1,7 @@
 # Template file for 'python3-grpcio'
 pkgname=python3-grpcio
 version=1.60.1
-revision=1
+revision=2
 build_style=python3-module
 hostmakedepends="python3-setuptools python3-six python3-Cython0.29"
 makedepends="python3-devel zlib-devel c-ares-devel re2-devel openssl-devel
@@ -14,10 +14,6 @@ homepage="https://grpc.io"
 distfiles="${PYPI_SITE}/g/grpcio/grpcio-${version}.tar.gz"
 checksum=dd1d3a8d1d2e50ad9b59e10aa7f07c7d1be2b367f3f2d33c5fade96ed5460962
 
-if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
-	makedepends+=" libexecinfo-devel"
-fi
-
 export GRPC_PYTHON_BUILD_SYSTEM_ABSL=1
 export GRPC_PYTHON_BUILD_SYSTEM_ZLIB=1
 export GRPC_PYTHON_BUILD_SYSTEM_CARES=1

From 3069bf2362e61623350b8f1609a1b8d343e7234c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:28 +0700
Subject: [PATCH 10/52] qt6-base: update to 6.7.2.

---
 srcpkgs/qt6-base-private-devel                |  1 +
 .../qt6-base/patches/libxkbcommon1.6.0.patch  | 39 -------------------
 srcpkgs/qt6-base/patches/markdown.patch       |  6 +--
 srcpkgs/qt6-base/patches/musl-limits.patch    | 20 ----------
 .../qt6-base/patches/musl-test-image.patch    |  8 ++--
 .../qt6-base/patches/musl-usr-path-hack.patch |  6 +--
 ...urce-root-dir-last-modified-is-valid.patch |  6 +--
 .../qt6-base/patches/x86-qround-passed.patch  |  8 ++--
 srcpkgs/qt6-base/patches/zfs-storage.patch    | 17 ++++----
 srcpkgs/qt6-base/template                     | 37 ++++++++++++++++--
 10 files changed, 59 insertions(+), 89 deletions(-)
 create mode 120000 srcpkgs/qt6-base-private-devel
 delete mode 100644 srcpkgs/qt6-base/patches/libxkbcommon1.6.0.patch
 delete mode 100644 srcpkgs/qt6-base/patches/musl-limits.patch

diff --git a/srcpkgs/qt6-base-private-devel b/srcpkgs/qt6-base-private-devel
new file mode 120000
index 00000000000000..8ddee598d5edc4
--- /dev/null
+++ b/srcpkgs/qt6-base-private-devel
@@ -0,0 +1 @@
+qt6-base
\ No newline at end of file
diff --git a/srcpkgs/qt6-base/patches/libxkbcommon1.6.0.patch b/srcpkgs/qt6-base/patches/libxkbcommon1.6.0.patch
deleted file mode 100644
index 7c1b0e8e9851e5..00000000000000
--- a/srcpkgs/qt6-base/patches/libxkbcommon1.6.0.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 8af35d27e8f02bbb99aef4ac495ed406e50e3cca Mon Sep 17 00:00:00 2001
-From: Liang Qi <liang.qi@qt.io>
-Date: Tue, 10 Oct 2023 14:08:48 +0200
-Subject: [PATCH] xkb: fix build with libxkbcommon 1.6.0 and later
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-A few XKB_KEY_dead_* defines got removed from 1.6.0. See also
-https://github.com/xkbcommon/libxkbcommon/blob/6073565903488cb5b9a8d37fdc4a7c2f9d7ad04d/NEWS#L9-L14
-https://gitlab.freedesktop.org/xorg/proto/xorgproto/-/merge_requests/70/diffs?commit_id=cb44799b72f611eb4c9d7cc185bc3b09e070be08
-
-Pick-to: 6.6 6.5 6.2 5.15
-Fixes: QTBUG-117950
-Change-Id: I55861868f2bb29c553d68365fa9b9b6ed01c9aea
-Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
----
- src/gui/platform/unix/qxkbcommon.cpp | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/gui/platform/unix/qxkbcommon.cpp b/src/gui/platform/unix/qxkbcommon.cpp
-index 26d87c5ff59..7b611790c67 100644
---- a/src/gui/platform/unix/qxkbcommon.cpp
-+++ b/src/gui/platform/unix/qxkbcommon.cpp
-@@ -237,10 +237,14 @@ static constexpr const auto KeyTbl = qMakeArray(
-         Xkb2Qt<XKB_KEY_dead_small_schwa,        Qt::Key_Dead_Small_Schwa>,
-         Xkb2Qt<XKB_KEY_dead_capital_schwa,      Qt::Key_Dead_Capital_Schwa>,
-         Xkb2Qt<XKB_KEY_dead_greek,              Qt::Key_Dead_Greek>,
-+/* The following four XKB_KEY_dead keys got removed in libxkbcommon 1.6.0
-+   The define check is kind of version check here. */
-+#ifdef XKB_KEY_dead_lowline
-         Xkb2Qt<XKB_KEY_dead_lowline,            Qt::Key_Dead_Lowline>,
-         Xkb2Qt<XKB_KEY_dead_aboveverticalline,  Qt::Key_Dead_Aboveverticalline>,
-         Xkb2Qt<XKB_KEY_dead_belowverticalline,  Qt::Key_Dead_Belowverticalline>,
-         Xkb2Qt<XKB_KEY_dead_longsolidusoverlay, Qt::Key_Dead_Longsolidusoverlay>,
-+#endif
- 
-         // Special keys from X.org - This include multimedia keys,
-         // wireless/bluetooth/uwb keys, special launcher keys, etc.
diff --git a/srcpkgs/qt6-base/patches/markdown.patch b/srcpkgs/qt6-base/patches/markdown.patch
index 249dd8bf9d3517..883256e157c00f 100644
--- a/srcpkgs/qt6-base/patches/markdown.patch
+++ b/srcpkgs/qt6-base/patches/markdown.patch
@@ -1,6 +1,6 @@
---- qt6-base-6.6.0/tests/auto/gui/text/qtextmarkdownimporter/tst_qtextmarkdownimporter.cpp	2023-09-13 18:02:48.000000000 +0200
-+++ -	2023-10-13 20:01:07.568899554 +0200
-@@ -223,10 +223,12 @@
+--- a/tests/auto/gui/text/qtextmarkdownimporter/tst_qtextmarkdownimporter.cpp
++++ b/tests/auto/gui/text/qtextmarkdownimporter/tst_qtextmarkdownimporter.cpp
+@@ -225,10 +225,12 @@ void tst_QTextMarkdownImporter::lists_da
      QTest::newRow("numeric lists nested in empty lists")
              << "- \n    1.  a\n    2.  b\n- c\n  1.\n       + d\n" << 0 << 1 << 4 << false
              << "- \n    1.  a\n    2.  b\n- c 1. + d\n";
diff --git a/srcpkgs/qt6-base/patches/musl-limits.patch b/srcpkgs/qt6-base/patches/musl-limits.patch
deleted file mode 100644
index da6d272d99deb3..00000000000000
--- a/srcpkgs/qt6-base/patches/musl-limits.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- qt6-base-6.4.2.orig/qmake/library/ioutils.cpp
-+++ qt6-base-6.4.2/qmake/library/ioutils.cpp
-@@ -15,6 +15,7 @@
- #  include <unistd.h>
- #  include <utime.h>
- #  include <fcntl.h>
-+#  include <limits.h>
- #  include <errno.h>
- #endif
- 
---- qt6-base-6.4.2.orig/src/corelib/io/qstorageinfo_unix.cpp
-+++ qt6-base-6.4.2/src/corelib/io/qstorageinfo_unix.cpp
-@@ -23,6 +23,7 @@
- #  include <sys/vfs.h>
- #  include <mntent.h>
- #elif defined(Q_OS_LINUX) || defined(Q_OS_HURD)
-+#  include <limits.h>
- #  include <mntent.h>
- #  include <sys/statvfs.h>
- #  include <sys/sysmacros.h>
diff --git a/srcpkgs/qt6-base/patches/musl-test-image.patch b/srcpkgs/qt6-base/patches/musl-test-image.patch
index b966a22c12a76d..73fec8689e4451 100644
--- a/srcpkgs/qt6-base/patches/musl-test-image.patch
+++ b/srcpkgs/qt6-base/patches/musl-test-image.patch
@@ -1,6 +1,6 @@
---- qt6-base-6.4.2.orig/tests/auto/gui/image/qimage/tst_qimage.cpp
-+++ qt6-base-6.4.2/tests/auto/gui/image/qimage/tst_qimage.cpp
-@@ -1806,6 +1806,8 @@ void tst_QImage::smoothScale2()
+--- a/tests/auto/gui/image/qimage/tst_qimage.cpp
++++ b/tests/auto/gui/image/qimage/tst_qimage.cpp
+@@ -1827,6 +1827,8 @@ void tst_QImage::smoothScale2()
      QRgb expected = opaque ? qRgb(63, 127, 255) : qRgba(31, 63, 127, 127);
      img.fill(expected);
  
@@ -9,7 +9,7 @@
      // scale x down, y down
      QImage scaled = img.scaled(QSize(1, 1), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
      QRgb pixel = scaled.pixel(0, 0);
-@@ -1869,6 +1871,7 @@ void tst_QImage::smoothScale2()
+@@ -1890,6 +1892,7 @@ void tst_QImage::smoothScale2()
              QCOMPARE(qBlue(pixel), qBlue(expected));
          }
      }
diff --git a/srcpkgs/qt6-base/patches/musl-usr-path-hack.patch b/srcpkgs/qt6-base/patches/musl-usr-path-hack.patch
index 92eae8431aea17..0eed034a1ecd1e 100644
--- a/srcpkgs/qt6-base/patches/musl-usr-path-hack.patch
+++ b/srcpkgs/qt6-base/patches/musl-usr-path-hack.patch
@@ -6,9 +6,9 @@ This breaks qt6-webengine's search path for translations.
 Using realpath instead would probably be a more correct solution.
 
 ---
---- qt6-base-6.4.2.orig/src/corelib/global/qlibraryinfo.cpp
-+++ qt6-base-6.4.2/src/corelib/global/qlibraryinfo.cpp
-@@ -358,6 +358,12 @@ static QString getRelocatablePrefix(QLib
+--- a/src/corelib/global/qlibraryinfo.cpp
++++ b/src/corelib/global/qlibraryinfo.cpp
+@@ -383,6 +383,12 @@ static QString getRelocatablePrefix(QLib
      int result = dladdr(reinterpret_cast<void *>(&QLibraryInfo::isDebugBuild), &info);
      if (result > 0 && info.dli_fname)
          prefixPath = prefixFromQtCoreLibraryHelper(QString::fromLocal8Bit(info.dli_fname));
diff --git a/srcpkgs/qt6-base/patches/resource-root-dir-last-modified-is-valid.patch b/srcpkgs/qt6-base/patches/resource-root-dir-last-modified-is-valid.patch
index 282b583330ce03..b3c45a50a4fa86 100644
--- a/srcpkgs/qt6-base/patches/resource-root-dir-last-modified-is-valid.patch
+++ b/srcpkgs/qt6-base/patches/resource-root-dir-last-modified-is-valid.patch
@@ -1,6 +1,6 @@
---- qt6-base-6.4.2.orig/tests/auto/corelib/io/qresourceengine/tst_qresourceengine.cpp
-+++ qt6-base-6.4.2/tests/auto/corelib/io/qresourceengine/tst_qresourceengine.cpp
-@@ -592,7 +592,10 @@ void tst_QResourceEngine::lastModified()
+--- a/tests/auto/corelib/io/qresourceengine/tst_qresourceengine.cpp
++++ b/tests/auto/corelib/io/qresourceengine/tst_qresourceengine.cpp
+@@ -624,7 +624,10 @@ void tst_QResourceEngine::lastModified()
      {
          QFileInfo fi(":/");
          QVERIFY(fi.exists());
diff --git a/srcpkgs/qt6-base/patches/x86-qround-passed.patch b/srcpkgs/qt6-base/patches/x86-qround-passed.patch
index f658ed833e4f89..3229ec4db586d9 100644
--- a/srcpkgs/qt6-base/patches/x86-qround-passed.patch
+++ b/srcpkgs/qt6-base/patches/x86-qround-passed.patch
@@ -1,6 +1,6 @@
---- qt6-base-6.4.2.orig/tests/auto/corelib/global/qglobal/tst_qglobal.cpp
-+++ qt6-base-6.4.2/tests/auto/corelib/global/qglobal/tst_qglobal.cpp
-@@ -599,18 +599,14 @@ void tst_QGlobal::qRoundFloats() {
+--- a/tests/auto/corelib/global/qglobal/tst_qglobal.cpp
++++ b/tests/auto/corelib/global/qglobal/tst_qglobal.cpp
+@@ -766,18 +766,14 @@ void tst_QGlobal::qRoundFloats() {
      QFETCH(float, expected);
  
  #if !(defined(Q_PROCESSOR_ARM_64) && (__has_builtin(__builtin_round) || defined(Q_CC_GNU)) && !defined(Q_CC_CLANG))
@@ -23,7 +23,7 @@
  }
  
  void tst_QGlobal::qRoundDoubles_data() {
-@@ -628,18 +624,14 @@ void tst_QGlobal::qRoundDoubles() {
+@@ -795,18 +791,14 @@ void tst_QGlobal::qRoundDoubles() {
      QFETCH(double, expected);
  
  #if !(defined(Q_PROCESSOR_ARM_64) && (__has_builtin(__builtin_round) || defined(Q_CC_GNU)) && !defined(Q_CC_CLANG))
diff --git a/srcpkgs/qt6-base/patches/zfs-storage.patch b/srcpkgs/qt6-base/patches/zfs-storage.patch
index 0473836ba7d665..f26fb107bcf47c 100644
--- a/srcpkgs/qt6-base/patches/zfs-storage.patch
+++ b/srcpkgs/qt6-base/patches/zfs-storage.patch
@@ -1,11 +1,10 @@
---- qt6-base-6.4.2.orig/tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp
-+++ qt6-base-6.4.2/tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp
-@@ -165,6 +165,8 @@ void tst_QStorageInfo::tempFile()
- #ifdef Q_OS_LINUX
-     if (storage1.fileSystemType() == "btrfs")
-         QSKIP("This test doesn't work on btrfs, probably due to a btrfs bug");
-+    if (storage1.fileSystemType() == "zfs")
-+        QSKIP("This test doesn't work on zfs");
+--- a/tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp
++++ b/tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp
+@@ -220,6 +220,7 @@ static QString suitableDirectoryForWriti
+         // See comment below. If we can get a tmpfs, let's try it.
+         "btrfs",
+         "xfs",
++        "zfs",
  #endif
+     };
  
-     qint64 free = storage1.bytesFree();
diff --git a/srcpkgs/qt6-base/template b/srcpkgs/qt6-base/template
index 3311599dd87d88..4b63dc5d8402b8 100644
--- a/srcpkgs/qt6-base/template
+++ b/srcpkgs/qt6-base/template
@@ -1,7 +1,9 @@
 # Template file for 'qt6-base'
+#
+# On update rebuild all pkg with qt6-base-private-devel
 pkgname=qt6-base
-version=6.6.0
-revision=2
+version=6.7.2
+revision=1
 build_style=cmake
 configure_args="-DINSTALL_DATADIR=share/qt6
  -DINSTALL_ARCHDATADIR=lib${XBPS_TARGET_WORDSIZE}/qt6
@@ -13,12 +15,13 @@ configure_args="-DINSTALL_DATADIR=share/qt6
  -DINSTALL_SYSCONFDIR=/etc/xdg
  -DQT_FEATURE_openssl_linked=ON
  -DQT_FEATURE_system_sqlite=ON
+ -DQT_FEATURE_system_xcb_xinput=ON
  -DQT_FEATURE_libproxy=ON
  -DQT_FEATURE_qmake=ON
  -DBUILD_WITH_PCH=OFF"
 hostmakedepends="perl pkg-config xmlstarlet"
 makedepends="zlib-devel libzstd-devel dbus-devel libmd4c-devel
- double-conversion-devel glib-devel libxcb-devel
+ double-conversion-devel glib-devel libxcb-devel libSM-devel
  xcb-util-image-devel xcb-util-keysyms-devel
  xcb-util-renderutil-devel xcb-util-wm-devel
  MesaLib-devel pcre2-devel icu-devel mtdev-devel harfbuzz-devel
@@ -32,7 +35,7 @@ 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=039d53312acb5897a9054bd38c9ccbdab72500b71fdccdb3f4f0844b0dd39e0e
+checksum=c5f22a5e10fb162895ded7de0963328e7307611c688487b5d152c9ee64767599
 python_version=3
 
 if [ "$CROSS_BUILD" ]; then
@@ -46,6 +49,12 @@ if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args+=" -DQT_BUILD_TESTS=ON"
 fi
 
+subpackages="qt6-concurrent qt6-core qt6-dbus qt6-gui qt6-network
+ qt6-opengl-widgets qt6-plugin-mysql qt6-plugin-networkinformation
+ qt6-plugin-odbc qt6-plugin-pgsql qt6-plugin-sqlite qt6-plugin-tls-openssl
+ qt6-plugin-tls-qcertonly qt6-printsupport qt6-sql qt6-test qt6-widgets qt6-xml
+ qt6-base-private-devel qt6-base-doc qt6-base-devel"
+
 do_check() {
 	cd build
 	export QT_QPA_PLATFORM=offscreen
@@ -70,6 +79,11 @@ do_check() {
 	failing_tests+=" mockplugins test_import_plugins
 	 test_static_resources test_generating_cpp_exports"
 	failing_tests+=" tst_qstorageinfo"
+	# cmake
+	failing_tests+=" test_qt_add_resources_rebuild test_collecting_plugins
+	 test_standalone_test test_qt_extract_metatypes"
+	# Failing readonly and out-of-memory
+	failing_tests+=" tst_qsharedmemory"
 	if [ "$XBPS_TARGET_LIBC" = musl ]; then
 		# Some glibc specific DNS Lookup
 		failing_tests+=" tst_qdnslookup"
@@ -260,6 +274,21 @@ qt6-plugin-networkinformation_package() {
 	}
 }
 
+qt6-base-private-devel_package() {
+	short_desc+=" - private development files"
+	depends="qt6-base-devel>=${version}_${revision}"
+	pkg_install() {
+		for dir in $(cd ${DESTDIR} && pwd >&2 && find usr/include -type d -name private); do
+			vmove "$dir"
+		done
+		vmove "usr/lib/cmake/*Private"
+		vmove "usr/lib/qt6/metatypes/*private_*_metatypes.json"
+		# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=921930
+		# vmove "usr/lib/qt6/mkspecs/modules/*_private.pri"
+		vmove "usr/lib/qt6/modules/*Private.json"
+	}
+}
+
 qt6-base-devel_package() {
 	short_desc+=" - Development files"
 	depends="qt6-base>=${version}_${revision}

From 7aa4c5f607baaffdfa9be392bd74ed13ed20b11f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:28 +0700
Subject: [PATCH 11/52] qt6-declarative: update to 6.7.2.

---
 srcpkgs/qt6-declarative-private-devel         |  1 +
 .../patches/bin-qml-location.patch            | 62 +++++++++----------
 srcpkgs/qt6-declarative/template              | 35 ++++++++---
 3 files changed, 57 insertions(+), 41 deletions(-)
 create mode 120000 srcpkgs/qt6-declarative-private-devel

diff --git a/srcpkgs/qt6-declarative-private-devel b/srcpkgs/qt6-declarative-private-devel
new file mode 120000
index 00000000000000..fd03a4809f3ebf
--- /dev/null
+++ b/srcpkgs/qt6-declarative-private-devel
@@ -0,0 +1 @@
+qt6-declarative
\ No newline at end of file
diff --git a/srcpkgs/qt6-declarative/patches/bin-qml-location.patch b/srcpkgs/qt6-declarative/patches/bin-qml-location.patch
index 9323aec00b64ce..84f6dfbe663c44 100644
--- a/srcpkgs/qt6-declarative/patches/bin-qml-location.patch
+++ b/srcpkgs/qt6-declarative/patches/bin-qml-location.patch
@@ -1,5 +1,5 @@
---- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmldebugtranslationclient/tst_qqmldebugtranslationclient.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmldebugtranslationclient/tst_qqmldebugtranslationclient.cpp
+--- a/tests/auto/qml/debugger/qqmldebugtranslationclient/tst_qqmldebugtranslationclient.cpp
++++ b/tests/auto/qml/debugger/qqmldebugtranslationclient/tst_qqmldebugtranslationclient.cpp
 @@ -71,6 +71,9 @@ private:
          m_currentOutputLine = 0;
  
@@ -10,8 +10,8 @@
          auto services = QQmlDebugTranslationServiceImpl::s_key;
          auto extraArgs = testFile(QMLFILE);
          auto block = true;
---- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp
+--- a/tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp
++++ b/tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp
 @@ -47,7 +47,11 @@ tst_QQmlInspector::tst_QQmlInspector()
  QQmlDebugTest::ConnectResult tst_QQmlInspector::startQmlProcess(const QString &qmlFile,
                                                                  bool restrictServices)
@@ -25,9 +25,9 @@
                                    restrictServices ? QStringLiteral("QmlInspector") : QString(),
                                    testFile(qmlFile), true);
  }
---- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp
-@@ -179,10 +179,18 @@ private:
+--- a/tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp
++++ b/tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp
+@@ -181,10 +181,18 @@ private:
          CheckType = CheckMessageType | CheckDetailType | CheckLine | CheckColumn | CheckFileEndsWith
      };
  
@@ -47,8 +47,8 @@
      void checkProcessTerminated();
      void checkTraceReceived();
      void checkJsHeap();
---- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/tst_qqmldebuggingenabler.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/tst_qqmldebuggingenabler.cpp
+--- a/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/tst_qqmldebuggingenabler.cpp
++++ b/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/tst_qqmldebuggingenabler.cpp
 @@ -85,8 +85,12 @@ void tst_QQmlDebuggingEnabler::qmlscene(
      QFETCH(bool, blockMode);
      QFETCH(QStringList, services);
@@ -64,8 +64,8 @@
      m_process->setMaximumBindErrors(1);
      m_process->start(QStringList()
                       << QString::fromLatin1("-qmljsdebugger=connector:%1%2%3%4")
---- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmlenginecontrol/tst_qqmlenginecontrol.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmlenginecontrol/tst_qqmlenginecontrol.cpp
+--- a/tests/auto/qml/debugger/qqmlenginecontrol/tst_qqmlenginecontrol.cpp
++++ b/tests/auto/qml/debugger/qqmlenginecontrol/tst_qqmlenginecontrol.cpp
 @@ -66,7 +66,11 @@ tst_QQmlEngineControl::tst_QQmlEngineCon
  QQmlDebugTest::ConnectResult tst_QQmlEngineControl::connectTo(const QString &file,
                                                              bool restrictServices)
@@ -79,11 +79,11 @@
                                    restrictServices ? QStringLiteral("EngineControl") : QString(),
                                    testFile(file), true);
  }
---- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp
+--- a/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp
++++ b/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp
 @@ -70,8 +70,11 @@ tst_QQmlEngineDebugInspectorIntegration:
  
- QQmlDebugTest::ConnectResult tst_QQmlEngineDebugInspectorIntegration::init(bool restrictServices)
+ QQmlDebugTest::ConnectResult tst_QQmlEngineDebugInspectorIntegration::runAndConnect(bool restrictServices)
  {
 -    return QQmlDebugTest::connectTo(
 -                QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/qml",
@@ -95,8 +95,8 @@
                  restrictServices ? QStringLiteral("QmlDebugger,QmlInspector") : QString(),
                  testFile("qtquick2.qml"), true);
  }
---- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmlpreview/tst_qqmlpreview.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmlpreview/tst_qqmlpreview.cpp
+--- a/tests/auto/qml/debugger/qqmlpreview/tst_qqmlpreview.cpp
++++ b/tests/auto/qml/debugger/qqmlpreview/tst_qqmlpreview.cpp
 @@ -56,7 +56,11 @@ tst_QQmlPreview::tst_QQmlPreview()
  
  QQmlDebugTest::ConnectResult tst_QQmlPreview::startQmlProcess(const QString &qmlFile)
@@ -110,9 +110,9 @@
                                    QStringLiteral("QmlPreview"), testFile(qmlFile), true);
  }
  
---- qt6-declarative-6.4.2.orig/tests/auto/qml/qmlformat/tst_qmlformat.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/qmlformat/tst_qmlformat.cpp
-@@ -65,6 +65,9 @@ void TestQmlformat::initTestCase()
+--- a/tests/auto/qml/qmlformat/tst_qmlformat.cpp
++++ b/tests/auto/qml/qmlformat/tst_qmlformat.cpp
+@@ -74,6 +74,9 @@ void TestQmlformat::initTestCase()
  {
      QQmlDataTest::initTestCase();
      m_qmlformatPath = QLibraryInfo::path(QLibraryInfo::BinariesPath) + QLatin1String("/qmlformat");
@@ -122,8 +122,8 @@
  #ifdef Q_OS_WIN
      m_qmlformatPath += QLatin1String(".exe");
  #endif
---- qt6-declarative-6.4.2.orig/tests/auto/qml/qmlimportscanner/tst_qmlimportscanner.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/qmlimportscanner/tst_qmlimportscanner.cpp
+--- a/tests/auto/qml/qmlimportscanner/tst_qmlimportscanner.cpp
++++ b/tests/auto/qml/qmlimportscanner/tst_qmlimportscanner.cpp
 @@ -42,6 +42,9 @@ void TestQmlimportscanner::initTestCase(
      QQmlDataTest::initTestCase();
      m_qmlimportscannerPath = QLibraryInfo::path(QLibraryInfo::LibraryExecutablesPath)
@@ -134,9 +134,9 @@
  #ifdef Q_OS_WIN
      m_qmlimportscannerPath += QLatin1String(".exe");
  #endif
---- qt6-declarative-6.4.2.orig/tests/auto/qml/qmllint/tst_qmllint.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/qmllint/tst_qmllint.cpp
-@@ -159,10 +159,18 @@ void TestQmllint::initTestCase()
+--- a/tests/auto/qml/qmllint/tst_qmllint.cpp
++++ b/tests/auto/qml/qmllint/tst_qmllint.cpp
+@@ -170,10 +170,18 @@ void TestQmllint::initTestCase()
  {
      QQmlDataTest::initTestCase();
      m_qmllintPath = QLibraryInfo::path(QLibraryInfo::BinariesPath) + QLatin1String("/qmllint");
@@ -155,8 +155,8 @@
  #ifdef Q_OS_WIN
      m_qmllintPath += QLatin1String(".exe");
      m_qmljsrootgenPath += QLatin1String(".exe");
---- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qdebugmessageservice/tst_qdebugmessageservice.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qdebugmessageservice/tst_qdebugmessageservice.cpp
+--- a/tests/auto/qml/debugger/qdebugmessageservice/tst_qdebugmessageservice.cpp
++++ b/tests/auto/qml/debugger/qdebugmessageservice/tst_qdebugmessageservice.cpp
 @@ -118,7 +118,11 @@ tst_QDebugMessageService::tst_QDebugMess
  
  void tst_QDebugMessageService::retrieveDebugOutput()
@@ -170,8 +170,8 @@
                                      QString(), testFile(QMLFILE), true), ConnectSuccess);
  
      QTRY_VERIFY(m_client->logBuffer.size() >= 2);
---- qt6-declarative-6.4.2.orig/tests/auto/qml/qmlplugindump/tst_qmlplugindump.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/qmlplugindump/tst_qmlplugindump.cpp
+--- a/tests/auto/qml/qmlplugindump/tst_qmlplugindump.cpp
++++ b/tests/auto/qml/qmlplugindump/tst_qmlplugindump.cpp
 @@ -38,6 +38,9 @@ void tst_qmlplugindump::initTestCase()
  {
      QQmlDataTest::initTestCase();
@@ -182,8 +182,8 @@
  
  #if defined(Q_OS_WIN)
      qmlplugindumpPath += QLatin1String("/qmlplugindump.exe");
---- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp
+--- a/tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp
++++ b/tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp
 @@ -163,11 +163,18 @@ void tst_QQmlDebugJS::initTestCase()
      QQmlDebugTest::initTestCase();
  }
@@ -195,7 +195,7 @@
 +        return QString(build_bin_path) + "/qmlscene";
 +    return QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/qmlscene";
 +}
- QQmlDebugTest::ConnectResult tst_QQmlDebugJS::init(bool qmlscene, const QString &qmlFile,
+ QQmlDebugTest::ConnectResult tst_QQmlDebugJS::runAndConnect(bool qmlscene, const QString &qmlFile,
                                                     bool blockMode, bool restrictServices)
  {
      const QString executable = qmlscene
diff --git a/srcpkgs/qt6-declarative/template b/srcpkgs/qt6-declarative/template
index 02f71622e16194..33031bc568e62e 100644
--- a/srcpkgs/qt6-declarative/template
+++ b/srcpkgs/qt6-declarative/template
@@ -1,17 +1,20 @@
 # Template file for 'qt6-declarative'
+#
+# On update, rebuild pkgs with qt6-declarative-private-devel
 pkgname=qt6-declarative
-version=6.6.0
-revision=2
+version=6.7.2
+revision=1
 build_style=cmake
 configure_args="-DQT_BUILD_TESTS=ON"
 hostmakedepends="qt6-base perl pkg-config wayland-devel qt6-shadertools python3"
-makedepends="qt6-base-devel Vulkan-Headers qt6-shadertools-devel qt6-languageserver-devel"
+makedepends="qt6-base-private-devel Vulkan-Headers qt6-shadertools-devel
+ qt6-languageserver-private-devel"
 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=1b539bb0a918c8f0307fd07bd4ef0334bf7f8934bbc2eabfc04c433a7d7fa331
+checksum=4c29cba1af8c42d425d8eb6e01bad24cb80f4b983d71eef566a0542dfdb9b999
 replaces="qt6-quickcontrols2>=0"
 
 if [ "$CROSS_BUILD" ]; then
@@ -24,6 +27,9 @@ if [ "$XBPS_TARGET_ENDIAN" = "be" ]; then
 	broken="shader compilation fails"
 fi
 
+subpackages="qt6-quick-test qt6-declarative-host-tools qt6-declarative-tools
+ qt6-declarative-private-devel qt6-declarative-devel"
+
 do_check() {
 	cd build
 	export QML2_IMPORT_PATH="$wrksrc/build/lib${XBPS_TARGET_WORDSIZE}/qt6/qml"
@@ -93,6 +99,20 @@ qt6-declarative-host-tools_package() {
 	}
 }
 
+qt6-declarative-private-devel_package() {
+	depends="qt6-declarative-devel>=${version}_${revision}"
+	short_desc+=" - private development files"
+	pkg_install() {
+		for dir in $(cd ${DESTDIR} && find usr/include -type d -name private); do
+			vmove "$dir"
+		done
+		vmove "usr/lib/cmake/*Private"
+		vmove "usr/lib/qt6/metatypes/*private_*_metatypes.json"
+		vmove "usr/lib/qt6/mkspecs/modules/*_private.pri"
+		vmove "usr/lib/qt6/modules/*Private.json"
+	}
+}
+
 qt6-declarative-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision} qt6-base-devel>=${version}_1
 	 qt6-declarative-host-tools>=${version}_${revision}"
@@ -107,11 +127,6 @@ qt6-declarative-devel_package() {
 		vmove "usr/lib/*.a"
 		vmove "usr/lib/*.prl"
 		vmove usr/lib/qt6/modules
-		for _f in ${DESTDIR}/usr/lib/cmake/*; do
-			case "$_f" in
-			*Tools) ;;
-			*)	vmove "usr/lib/cmake/${_f##*/}" ;;
-			esac
-		done
+		vmove usr/lib/cmake
 	}
 }

From c1e26e5816db821b0ea523553a9b09b36fd3b207 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:29 +0700
Subject: [PATCH 12/52] qt6-languageserver: update to 6.7.2.

---
 srcpkgs/qt6-languageserver-private-devel |  1 +
 srcpkgs/qt6-languageserver/template      | 26 +++++++++++++++++++++---
 2 files changed, 24 insertions(+), 3 deletions(-)
 create mode 120000 srcpkgs/qt6-languageserver-private-devel

diff --git a/srcpkgs/qt6-languageserver-private-devel b/srcpkgs/qt6-languageserver-private-devel
new file mode 120000
index 00000000000000..7426b953adab41
--- /dev/null
+++ b/srcpkgs/qt6-languageserver-private-devel
@@ -0,0 +1 @@
+qt6-languageserver
\ No newline at end of file
diff --git a/srcpkgs/qt6-languageserver/template b/srcpkgs/qt6-languageserver/template
index a152b18f7dcd09..2521c5d684c509 100644
--- a/srcpkgs/qt6-languageserver/template
+++ b/srcpkgs/qt6-languageserver/template
@@ -1,17 +1,37 @@
 # Template file for 'qt6-languageserver'
 pkgname=qt6-languageserver
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 configure_args="-DQT_BUILD_TESTS=ON"
 hostmakedepends="qt6-base"
-makedepends="qt6-base-devel"
+makedepends="qt6-base-private-devel"
 short_desc="Implementation of the Language Server Protocol for Qt6"
 maintainer="classabbyamp <void@placeviolette.net>"
 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/qtlanguageserver-everywhere-src-${version}.tar.xz"
-checksum=aec93019862bf63769206fe56a2230cd9e37994806a4bf28415203b4eb9a490e
+checksum=b659fe655144ffa061e3ae509eadb42ae373230517295a96935434340e101a92
+
+subpackages="qt6-languageserver-private-devel qt6-languageserver-devel"
+
+post_install() {
+	rm -rf ${DESTDIR}/usr/tests
+}
+
+qt6-languageserver-private-devel_package() {
+	depends="qt6-languageserver-devel>=${version}_${revision}"
+	short_desc+=" - private development files"
+	pkg_install() {
+		for dir in $(cd ${DESTDIR} && find usr/include -type d -name private); do
+			vmove "$dir"
+		done
+		vmove "usr/lib/cmake/*Private"
+		vmove "usr/lib/qt6/metatypes/*private_*_metatypes.json"
+		vmove "usr/lib/qt6/mkspecs/modules/*_private.pri"
+		vmove "usr/lib/qt6/modules/*Private.json"
+	}
+}
 
 qt6-languageserver-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision}"

From ed37b357ec48d801d89c8b0be2caa29e04dfb364 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:29 +0700
Subject: [PATCH 13/52] qt6-multimedia: update to 6.7.2.

---
 srcpkgs/qt6-multimedia-private-devel          |  1 +
 .../qt6-multimedia/patches/musl-timeval.patch | 10 -------
 srcpkgs/qt6-multimedia/template               | 28 +++++++++++++++----
 3 files changed, 24 insertions(+), 15 deletions(-)
 create mode 120000 srcpkgs/qt6-multimedia-private-devel
 delete mode 100644 srcpkgs/qt6-multimedia/patches/musl-timeval.patch

diff --git a/srcpkgs/qt6-multimedia-private-devel b/srcpkgs/qt6-multimedia-private-devel
new file mode 120000
index 00000000000000..9343446502d0e5
--- /dev/null
+++ b/srcpkgs/qt6-multimedia-private-devel
@@ -0,0 +1 @@
+qt6-multimedia
\ No newline at end of file
diff --git a/srcpkgs/qt6-multimedia/patches/musl-timeval.patch b/srcpkgs/qt6-multimedia/patches/musl-timeval.patch
deleted file mode 100644
index af7b4dd7fb5769..00000000000000
--- a/srcpkgs/qt6-multimedia/patches/musl-timeval.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- qt6-multimedia-6.4.2.orig/src/plugins/multimedia/ffmpeg/qv4l2camera_p.h
-+++ qt6-multimedia-6.4.2/src/plugins/multimedia/ffmpeg/qv4l2camera_p.h
-@@ -22,6 +22,7 @@
- #include <qfilesystemwatcher.h>
- #include <qsocketnotifier.h>
- #include <qmutex.h>
-+#include <sys/time.h>
- 
- QT_BEGIN_NAMESPACE
- 
diff --git a/srcpkgs/qt6-multimedia/template b/srcpkgs/qt6-multimedia/template
index 67a577e1300fea..046cc0b486ccdc 100644
--- a/srcpkgs/qt6-multimedia/template
+++ b/srcpkgs/qt6-multimedia/template
@@ -1,24 +1,28 @@
 # Template file for 'qt6-multimedia'
 pkgname=qt6-multimedia
-version=6.6.0
-revision=2
+version=6.7.2
+revision=1
 build_style=cmake
 configure_args="-DQT_FEATURE_gstreamer=ON"
 hostmakedepends="perl qt6-declarative-host-tools pkg-config qt6-shadertools"
-makedepends="qt6-declarative-devel pulseaudio-devel ffmpeg-devel libva-devel
- qt6-shadertools-devel libglib-devel gst-plugins-base1-devel qt6-quick3d-devel"
+makedepends="qt6-base-private-devel qt6-declarative-private-devel
+ qt6-quick3d-private-devel
+ pulseaudio-devel ffmpeg-devel libva-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/official_releases/qt/${version%.*}/${version}/submodules/qtmultimedia-everywhere-src-${version}.tar.xz"
-checksum=ba4b236ca3ec118841b7f5ba87797e24a8c5cbef9ba973fe219fbfc310d38782
+checksum=8ef835115acb9a1d3d2c9f23cfacb43f2c537e3786a8ab822299a2a7765651d3
 
 if [ "$XBPS_MACHINE" = "i686" ]; then
 	CXXFLAGS="-DPFFFT_SIMD_DISABLE=1"
 	CFLAGS="-DPFFFT_SIMD_DISABLE=1"
 fi
 
+subpackages="qt6-multimedia-private-devel qt6-multimedia-devel"
+
 do_check() {
 	cd build
 	local broken="tst_qmediaformat|tst_qaudiodecoderbackend"
@@ -33,6 +37,20 @@ post_install() {
 	rm -rf ${DESTDIR}/usr/tests
 }
 
+qt6-multimedia-private-devel_package() {
+	depends="qt6-multimedia-devel>=${version}_${revision}"
+	short_desc+=" - private development files"
+	pkg_install() {
+		for dir in $(cd ${DESTDIR} && find usr/include -type d -name private); do
+			vmove "$dir"
+		done
+		vmove "usr/lib/cmake/*Private"
+		vmove "usr/lib/qt6/metatypes/*private_*_metatypes.json"
+		vmove "usr/lib/qt6/mkspecs/modules/*_private.pri"
+		vmove "usr/lib/qt6/modules/*Private.json"
+	}
+}
+
 qt6-multimedia-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision} qt6-base-devel>=${version}_1"
 	short_desc+=" - development files"

From f12aa07cadf5a816153a10718defab10772e589a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:29 +0700
Subject: [PATCH 14/52] qt6-qt5compat: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-qt5compat/template b/srcpkgs/qt6-qt5compat/template
index 5724b0f8a0f17d..fa9c9d6eabb147 100644
--- a/srcpkgs/qt6-qt5compat/template
+++ b/srcpkgs/qt6-qt5compat/template
@@ -1,18 +1,19 @@
 # Template file for 'qt6-qt5compat'
 pkgname=qt6-qt5compat
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 configure_args="-DQT_FEATURE_textcodec=ON -DQT_FEATURE_codecs=ON
  -DQT_FEATURE_iconv=ON -DQT_FEATURE_big_codecs=ON"
 hostmakedepends="qt6-base qt6-declarative-host-tools perl pkg-config"
-makedepends="qt6-base-devel qt6-declarative-devel qt6-shadertools-devel"
+makedepends="qt6-base-private-devel qt6-declarative-private-devel
+ qt6-shadertools-devel"
 short_desc="Cross-platform application and UI framework - Qt5 Compatibilty Component"
 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=3d85edb66126f712266dcbfc6cd00383d46cc6d66c8b84607ca21e2bc71a8fca
+checksum=8826b5189efc4d9bdb64fdb1aa89d0fdf4e53c60948ed7995621ed046e38c003
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args="-DQT_BUILD_TESTS=ON"

From e89a27e814ece4c140097757aa7572afa3c18a38 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:29 +0700
Subject: [PATCH 15/52] qt6-quick3d: update to 6.7.2.

---
 srcpkgs/qt6-quick3d-private-devel |  1 +
 srcpkgs/qt6-quick3d/template      | 25 ++++++++++++++++++++-----
 2 files changed, 21 insertions(+), 5 deletions(-)
 create mode 120000 srcpkgs/qt6-quick3d-private-devel

diff --git a/srcpkgs/qt6-quick3d-private-devel b/srcpkgs/qt6-quick3d-private-devel
new file mode 120000
index 00000000000000..91ff6f03e47970
--- /dev/null
+++ b/srcpkgs/qt6-quick3d-private-devel
@@ -0,0 +1 @@
+qt6-quick3d
\ No newline at end of file
diff --git a/srcpkgs/qt6-quick3d/template b/srcpkgs/qt6-quick3d/template
index cf5b03d8024619..8cf3f07d37a848 100644
--- a/srcpkgs/qt6-quick3d/template
+++ b/srcpkgs/qt6-quick3d/template
@@ -1,19 +1,19 @@
 # Template file for 'qt6-quick3d'
 pkgname=qt6-quick3d
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-declarative-host-tools qt6-shadertools"
-makedepends="qt6-base-devel qt6-declarative-devel qt6-shadertools-devel
- qt6-quicktimeline libassimp-devel"
+makedepends="qt6-base-private-devel qt6-declarative-private-devel
+ qt6-shadertools-devel qt6-quicktimeline libassimp-devel"
 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=37ab3eb394e49d6c2b03c4da0c7f782c255dff294e73946369dd2e059a837aba
+checksum=bb8ff9aec6da2e2d3b3986cc859333a98b2f3d4bbe564c5733e8f1a089d15270
 
-subpackages="qt6-quick3d-tools qt6-quick3d-devel"
+subpackages="qt6-quick3d-tools qt6-quick3d-private-devel qt6-quick3d-devel"
 if [ "$CROSS_BUILD" ]; then
 	hostmakedepends+=" qt6-quick3d-tools"
 	configure_args="-DQT_FORCE_BUILD_TOOLS=true"
@@ -35,6 +35,21 @@ post_install() {
 	rm -rf ${DESTDIR}/usr/lib/libQt6BundledEmbree.a
 }
 
+qt6-quick3d-private-devel_package() {
+	depends="qt6-quick3d-devel>=${version}_${revision}
+	 qt6-declarative-private-devel"
+	short_desc+=" - private development files"
+	pkg_install() {
+		for dir in $(cd ${DESTDIR} && find usr/include -type d -name private); do
+			vmove "$dir"
+		done
+		vmove "usr/lib/cmake/*Private"
+		vmove "usr/lib/qt6/metatypes/*private_*_metatypes.json"
+		vmove "usr/lib/qt6/mkspecs/modules/*_private.pri"
+		vmove "usr/lib/qt6/modules/*Private.json"
+	}
+}
+
 qt6-quick3d-tools_package() {
 	depends="${sourcepkg}>=${version}_${revision}"
 	short_desc+=" - Tools"

From 2a4d0aab78ff5715d1b2c664ed43da7e4c044c73 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:29 +0700
Subject: [PATCH 16/52] qt6-quicktimeline: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-quicktimeline/template b/srcpkgs/qt6-quicktimeline/template
index fcb2ec7ef59e94..5c19476ea230f3 100644
--- a/srcpkgs/qt6-quicktimeline/template
+++ b/srcpkgs/qt6-quicktimeline/template
@@ -1,16 +1,16 @@
 # Template file for 'qt6-quicktimeline'
 pkgname=qt6-quicktimeline
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base qt6-declarative-host-tools"
-makedepends="qt6-base-devel qt6-declarative-devel"
+makedepends="qt6-base-private-devel qt6-declarative-private-devel"
 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/rc/-rc}/submodules/qtquicktimeline-everywhere-src-${version/rc/-rc}.tar.xz"
-checksum=079e51d4572aed992731628b269f9c3f9c61a6c379bae6c354c949a6d89bb590
+checksum=21eddea01cf095cede10362eea4fb8402ffd06868c88d50a757c8c1f6b0719eb
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args="-DQT_BUILD_TESTS=ON"

From e3d6efb7f37d78ab1b7f76a293860918a0ded53b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:29 +0700
Subject: [PATCH 17/52] qt6-shadertools: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-shadertools/template b/srcpkgs/qt6-shadertools/template
index 815bfca3047f73..0357e1abd4c442 100644
--- a/srcpkgs/qt6-shadertools/template
+++ b/srcpkgs/qt6-shadertools/template
@@ -1,17 +1,17 @@
 # Template file for 'qt6-shadertools'
 pkgname=qt6-shadertools
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base"
-makedepends="qt6-base-devel"
+makedepends="qt6-base-private-devel"
 depends="libqt6shadertools>=${version}_${revision}"
 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=3690327dc550144b8102be2bb7f6dc995ccbe3584041094ad021a83737ef9875
+checksum=edfa34c0ac8c00fcaa949df1d8e7a77d89dadd6386e683ce6c3e3b117e2f7cc1
 
 if [ "$CROSS_BUILD" ]; then
 	configure_args="-DQT_FORCE_BUILD_TOOLS=true"

From eae1f6cdd5c8b2658d8e3067eae51f1ec9060c35 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:29 +0700
Subject: [PATCH 18/52] qt6-svg: update to 6.7.2.

---
 ...nullptr-dereference-with-invalid-SVG.patch | 29 -------------------
 srcpkgs/qt6-svg/template                      |  6 ++--
 2 files changed, 3 insertions(+), 32 deletions(-)
 delete mode 100644 srcpkgs/qt6-svg/patches/Fix-nullptr-dereference-with-invalid-SVG.patch

diff --git a/srcpkgs/qt6-svg/patches/Fix-nullptr-dereference-with-invalid-SVG.patch b/srcpkgs/qt6-svg/patches/Fix-nullptr-dereference-with-invalid-SVG.patch
deleted file mode 100644
index 9f0de172e652a8..00000000000000
--- a/srcpkgs/qt6-svg/patches/Fix-nullptr-dereference-with-invalid-SVG.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From edc8ca7f1e45302223b4b7962a57a30918f84c8d Mon Sep 17 00:00:00 2001
-From: Paul Olav Tvete <paul.tvete@qt.io>
-Date: Tue, 10 Oct 2023 10:14:22 +0200
-Subject: Fix nullptr dereference with invalid SVG
-
-Fixes: QTBUG-117944
-Pick-to: 6.6 6.5 6.2
-Change-Id: I9059dc28c750fc0585f1fb982152b211c323c6cd
-Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
----
- src/svg/qsvghandler.cpp | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/svg/qsvghandler.cpp b/src/svg/qsvghandler.cpp
-index e6877ac..1cffbc3 100644
---- a/src/svg/qsvghandler.cpp
-+++ b/src/svg/qsvghandler.cpp
-@@ -3620,6 +3620,8 @@ void QSvgHandler::init()
- 
- static bool detectCycles(const QSvgNode *node, QList<const QSvgUse *> active = {})
- {
-+    if (Q_UNLIKELY(!node))
-+        return false;
-     switch (node->type()) {
-     case QSvgNode::DOC:
-     case QSvgNode::G:
--- 
-cgit v1.2.3
-
diff --git a/srcpkgs/qt6-svg/template b/srcpkgs/qt6-svg/template
index 8f545f8a309b79..fecf0655fdb832 100644
--- a/srcpkgs/qt6-svg/template
+++ b/srcpkgs/qt6-svg/template
@@ -1,16 +1,16 @@
 # Template file for 'qt6-svg'
 pkgname=qt6-svg
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="qt6-base perl"
-makedepends="qt6-base-devel"
+makedepends="qt6-base-private-devel"
 short_desc="Cross-platform application and UI framework (QT6) - qt6-svg component"
 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=33da25fef51102f564624a7ea3e57cb4a0a31b7b44783d1af5749ac36d3c72de
+checksum=fb0d1286a35be3583fee34aeb5843c94719e07193bdf1d4d8b0dc14009caef01
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args="-DQT_BUILD_TESTS=ON"

From 79242c01fc1c46f64e641327e6874b11e397bfb8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:30 +0700
Subject: [PATCH 19/52] qt6-tools: update to 6.7.2.

---
 srcpkgs/qt6-tools-private-devel               |  1 +
 srcpkgs/qt6-tools/patches/gumbo.patch         | 15 ----
 .../qt6-tools/patches/no-litehtml-test.patch  | 11 ---
 srcpkgs/qt6-tools/patches/qdoc-location.patch | 89 ++++++++++++++++---
 srcpkgs/qt6-tools/template                    | 35 ++++++--
 5 files changed, 109 insertions(+), 42 deletions(-)
 create mode 120000 srcpkgs/qt6-tools-private-devel
 delete mode 100644 srcpkgs/qt6-tools/patches/gumbo.patch
 delete mode 100644 srcpkgs/qt6-tools/patches/no-litehtml-test.patch

diff --git a/srcpkgs/qt6-tools-private-devel b/srcpkgs/qt6-tools-private-devel
new file mode 120000
index 00000000000000..d2de59aba4535f
--- /dev/null
+++ b/srcpkgs/qt6-tools-private-devel
@@ -0,0 +1 @@
+qt6-tools
\ No newline at end of file
diff --git a/srcpkgs/qt6-tools/patches/gumbo.patch b/srcpkgs/qt6-tools/patches/gumbo.patch
deleted file mode 100644
index 42c8e40203c28e..00000000000000
--- a/srcpkgs/qt6-tools/patches/gumbo.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- qttools-everywhere-src-6.4.0/src/assistant/qlitehtml/src/CMakeLists.txt	2022-09-23 13:50:40.000000000 +0200
-+++ -	2022-11-03 01:17:21.262108484 +0100
-@@ -30,12 +30,6 @@
-       PROPERTIES
-         QT_COMPILE_OPTIONS_DISABLE_WARNINGS ON
-     )
--    set_target_properties(
--      gumbo
--      PROPERTIES
--        QT_COMPILE_OPTIONS_DISABLE_WARNINGS ON
--    )
--
-     set(CMAKE_POSITION_INDEPENDENT_CODE "${ORIG_FPIC}")
-     set(BUILD_SHARED_LIBS ${ORIG_BUILD_SHARED_LIBS})
-     # force optimized litehtml even in debug
diff --git a/srcpkgs/qt6-tools/patches/no-litehtml-test.patch b/srcpkgs/qt6-tools/patches/no-litehtml-test.patch
deleted file mode 100644
index 2cbfac5de82d54..00000000000000
--- a/srcpkgs/qt6-tools/patches/no-litehtml-test.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- qt6-tools-6.4.2.orig/src/assistant/qlitehtml/src/3rdparty/litehtml/CMakeLists.txt
-+++ qt6-tools-6.4.2/src/assistant/qlitehtml/src/3rdparty/litehtml/CMakeLists.txt
-@@ -191,7 +191,7 @@ set_source_files_properties(${CMAKE_CURR
- 
- # Tests
- 
--if (BUILD_TESTING)
-+if (FALSE)
-     include(FetchContent)
-     FetchContent_Declare(
-       googletest
diff --git a/srcpkgs/qt6-tools/patches/qdoc-location.patch b/srcpkgs/qt6-tools/patches/qdoc-location.patch
index 6d7c0ea345374e..8e4df56a00b404 100644
--- a/srcpkgs/qt6-tools/patches/qdoc-location.patch
+++ b/srcpkgs/qt6-tools/patches/qdoc-location.patch
@@ -1,14 +1,83 @@
---- qt6-tools-6.4.2.orig/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp
-+++ qt6-tools-6.4.2/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp
-@@ -74,7 +74,10 @@ private:
- void tst_generatedOutput::initTestCase()
+--- a/tests/auto/linguist/lconvert/tst_lconvert.cpp
++++ b/tests/auto/linguist/lconvert/tst_lconvert.cpp
+@@ -4,6 +4,16 @@
+ #include <QtTest/QtTest>
+ #include <QtCore/QFile>
+ 
++namespace {
++QString xbinpath()
++{
++    char *build_binpath = getenv("QT_BUILD_BIN_PATH");
++    if (build_binpath && *build_binpath)
++        return build_binpath;
++    return QLibraryInfo::path(QLibraryInfo::BinariesPath);
++}
++}
++
+ class tst_lconvert : public QObject
+ {
+     Q_OBJECT
+@@ -11,7 +21,7 @@ class tst_lconvert : public QObject
+ public:
+     tst_lconvert()
+       : dataDir(QFINDTESTDATA("data/"))
+-      , lconvert(QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/lconvert") {}
++      , lconvert(xbinpath() + QStringLiteral("/lconvert")) {}
+ 
+ private slots:
+     void initTestCase();
+--- a/tests/auto/linguist/lrelease/tst_lrelease.cpp
++++ b/tests/auto/linguist/lrelease/tst_lrelease.cpp
+@@ -8,13 +8,22 @@
+ 
+ #include <QtTest/QtTest>
+ 
++namespace {
++QString xbinpath()
++{
++    char *build_binpath = getenv("QT_BUILD_BIN_PATH");
++    if (build_binpath && *build_binpath)
++        return build_binpath;
++    return QLibraryInfo::path(QLibraryInfo::BinariesPath);
++}
++}
+ class tst_lrelease : public QObject
+ {
+     Q_OBJECT
+ 
+ public:
+     tst_lrelease()
+-         : lrelease(QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/lrelease")
++         : lrelease(xbinpath() + QStringLiteral("/lrelease"))
+          , dataDir(QFINDTESTDATA("testdata/"))
+     {}
+ 
+--- a/tests/auto/linguist/lupdate/tst_lupdate.cpp
++++ b/tests/auto/linguist/lupdate/tst_lupdate.cpp
+@@ -44,7 +44,10 @@ private:
+ 
+ tst_lupdate::tst_lupdate()
+ {
+-    QString binPath = QLibraryInfo::path(QLibraryInfo::BinariesPath);
++    auto binPath = QLibraryInfo::path(QLibraryInfo::BinariesPath);
++    char *build_binpath = getenv("QT_BUILD_BIN_PATH");
++    if (build_binpath && *build_binpath)
++        binPath = build_binpath;
+     m_cmdLupdate = binPath + QLatin1String("/lupdate");
+     m_basePath = QFINDTESTDATA("testdata/");
+ }
+--- a/tests/auto/qtdiag/tst_qtdiag.cpp
++++ b/tests/auto/qtdiag/tst_qtdiag.cpp
+@@ -21,7 +21,11 @@ private:
+ 
+ void tst_QtDiag::initTestCase()
  {
-     // Build the path to the QDoc binary the same way moc tests do for moc.
--    const auto binpath = QLibraryInfo::path(QLibraryInfo::BinariesPath);
+-    QString binary = QLibraryInfo::path(QLibraryInfo::BinariesPath) + QStringLiteral("/qtdiag");
 +    auto binpath = QLibraryInfo::path(QLibraryInfo::BinariesPath);
 +    char *build_binpath = getenv("QT_BUILD_BIN_PATH");
 +    if (build_binpath && *build_binpath)
-+    	    binpath = build_binpath;
-     const auto extension = QSysInfo::productType() == "windows" ? ".exe" : "";
-     m_qdoc = binpath + QLatin1String("/qdoc") + extension;
-     m_expectedDir.setPath(QFINDTESTDATA("expected_output"));
++        binpath = build_binpath;
++    QString binary = binpath + QStringLiteral("/qtdiag");
+ #  ifdef Q_OS_WIN
+     binary += QStringLiteral(".exe");
+ #  endif
diff --git a/srcpkgs/qt6-tools/template b/srcpkgs/qt6-tools/template
index 986db5dffd2393..5fde45439cdc4a 100644
--- a/srcpkgs/qt6-tools/template
+++ b/srcpkgs/qt6-tools/template
@@ -1,33 +1,42 @@
 # Template file for 'qt6-tools'
 pkgname=qt6-tools
-version=6.6.0
-revision=2
+version=6.7.2
+revision=1
 build_style=cmake
 configure_args="-DEXTERNAL_GUMBO=ON -DLITEHTML_UTF8=ON -DUSE_ICU=ON
  -DQT_BUILD_SHARED_LIBS=ON -DQT_FEATURE_assistant=ON
- -DQT_FEATURE_pixeltool=ON
+ -DQT_FEATURE_pixeltool=ON -DLITEHTML_BUILD_TESTING=OFF
  -DQT_FEATURE_distancefieldgenerator=ON"
 hostmakedepends="qt6-base perl qt6-plugin-sqlite clang17 clang-tools-extra17
  qt6-declarative-host-tools"
-makedepends="qt6-base-devel qt6-plugin-sqlite qt6-declarative-devel
+makedepends="qt6-base-private-devel qt6-plugin-sqlite qt6-declarative-private-devel
  gumbo-parser-devel icu-devel llvm17-devel"
 short_desc="Cross-platform application and UI framework (QT6) - qt6-tools component"
 maintainer="John <me@johnnynator.dev>"
 license="custom: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=4e9feebc142bbb6e453e1dc3277e09ec45c8ef081b5ee2a029e6684b5905ba99
+checksum=58e855ad1b2533094726c8a425766b63a04a0eede2ed85086860e54593aa4b2a
 
 if [ "$CROSS_BUILD" ]; then
 	configure_args+=" -DQT_FORCE_BUILD_TOOLS=TRUE"
 	hostmakedepends+=" qt6-tools"
 fi
-
+case "$XBPS_TARGET_MACHINE" in
+	x86_64*|aarch64*)
+		makedepends+=" libomp-devel" ;;
+esac
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args+=" -DQT_BUILD_TESTS=ON"
 fi
 
+subpackages="qt6-designer qt6-help qt6-ui-tools qt6-tools-private-devel qt6-tools-devel"
+
+post_patch() {
+	vsed -i -e 's/gumbo/litehtml/' src/assistant/qlitehtml/src/CMakeLists.txt
+}
+
 post_install() {
 	vlicense LICENSES/Qt-GPL-exception-1.0.txt
 }
@@ -65,6 +74,20 @@ qt6-ui-tools_package() {
 	}
 }
 
+qt6-tools-private-devel_package() {
+	depends="qt6-tools-devel>=${version}_${revision}"
+	short_desc+=" - private development files"
+	pkg_install() {
+		for dir in $(cd ${DESTDIR} && find usr/include -type d -name private); do
+			vmove "$dir"
+		done
+		vmove "usr/lib/cmake/*Private"
+		vmove "usr/lib/qt6/metatypes/*private_*_metatypes.json"
+		vmove "usr/lib/qt6/mkspecs/modules/*_private.pri"
+		vmove "usr/lib/qt6/modules/*Private.json"
+	}
+}
+
 qt6-tools-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision} qt6-base-devel>=${version}_1"
 	short_desc+=" - development files"

From 65d4701756a5e8a46c6f46588291f315a53c52c9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:30 +0700
Subject: [PATCH 20/52] qt6-translations: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-translations/template b/srcpkgs/qt6-translations/template
index 85f83d0a4879cc..414f31964525b7 100644
--- a/srcpkgs/qt6-translations/template
+++ b/srcpkgs/qt6-translations/template
@@ -1,13 +1,12 @@
 # Template file for 'qt6-translations'
 pkgname=qt6-translations
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
-hostmakedepends="qt6-base qt6-tools perl"
-makedepends="qt6-base-devel qt6-tools-devel"
+hostmakedepends="qt6-base-devel qt6-tools-devel perl"
 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=a0d89a236f64b810eb0fe4ae1e90db22b0e86263521b35f89e69f1392815078c
+checksum=9845780b5dc1b7279d57836db51aeaf2e4a1160c42be09750616f39157582ca9

From 88a5c60bf2cf2921410e6bd8bbe7be6a8bbc7cef Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:30 +0700
Subject: [PATCH 21/52] qt6-wayland: update to 6.7.2.

---
 srcpkgs/qt6-wayland-private-devel |  1 +
 srcpkgs/qt6-wayland/template      | 24 +++++++++++++++++++-----
 2 files changed, 20 insertions(+), 5 deletions(-)
 create mode 120000 srcpkgs/qt6-wayland-private-devel

diff --git a/srcpkgs/qt6-wayland-private-devel b/srcpkgs/qt6-wayland-private-devel
new file mode 120000
index 00000000000000..c4dec18ea9a04a
--- /dev/null
+++ b/srcpkgs/qt6-wayland-private-devel
@@ -0,0 +1 @@
+qt6-wayland
\ No newline at end of file
diff --git a/srcpkgs/qt6-wayland/template b/srcpkgs/qt6-wayland/template
index ef4dc11a9491ae..1abb9396baf1a1 100644
--- a/srcpkgs/qt6-wayland/template
+++ b/srcpkgs/qt6-wayland/template
@@ -1,12 +1,12 @@
 # Template file for 'qt6-wayland'
 pkgname=qt6-wayland
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="qt6-base perl pkg-config wayland-devel qt6-declarative-host-tools"
 # XXX: Qml as optional dep
-makedepends="qt6-base-devel wayland-devel libxkbcommon-devel
- qt6-declarative-devel
+makedepends="qt6-base-private-devel wayland-devel libxkbcommon-devel
+ qt6-declarative-private-devel
  libXcomposite-devel MesaLib-devel Vulkan-Headers libdrm-devel"
 checkdepends="dbus mesa-dri"
 short_desc="Cross-platform application and UI framework - Wayland"
@@ -14,9 +14,9 @@ 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=30c3d82d85d050c83370710a26d12c802199c51eba5c2726e9d6243edd03b7e8
+checksum=a2a057e1dd644bd44abb9990fecc194b2e25c2e0f39e81aa9fee4c1e5e2a8a5b
 
-subpackages="qt6-wayland-tools qt6-wayland-devel"
+subpackages="qt6-wayland-tools qt6-wayland-private-devel qt6-wayland-devel"
 
 if [ "$CROSS_BUILD" ]; then
 	configure_args="-DQT_FORCE_BUILD_TOOLS=true"
@@ -37,6 +37,20 @@ qt6-wayland-tools_package() {
 	}
 }
 
+qt6-wayland-private-devel_package() {
+	depends="qt6-wayland-devel>=${version}_${revision}"
+	short_desc+=" - private development files"
+	pkg_install() {
+		for dir in $(cd ${DESTDIR} && find usr/include -type d -name private); do
+			vmove "$dir"
+		done
+		vmove "usr/lib/cmake/*Private"
+		vmove "usr/lib/qt6/metatypes/*private_*_metatypes.json"
+		vmove "usr/lib/qt6/mkspecs/modules/*_private.pri"
+		vmove "usr/lib/qt6/modules/*Private.json"
+	}
+}
+
 qt6-wayland-devel_package() {
 	depends="qt6-wayland-tools>=${version}_${revision} qt6-base-devel>=${version}_1"
 	short_desc+=" - development files"

From ab12f17b6d9c20668e9d226bef55df027a2e1c26 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:30 +0700
Subject: [PATCH 22/52] qt6-webchannel: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-webchannel/template b/srcpkgs/qt6-webchannel/template
index 1718abb31b7e0d..4a867790d99cf2 100644
--- a/srcpkgs/qt6-webchannel/template
+++ b/srcpkgs/qt6-webchannel/template
@@ -1,16 +1,17 @@
 # Template file for 'qt6-webchannel'
 pkgname=qt6-webchannel
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base qt6-declarative-host-tools"
-makedepends="qt6-base-devel qt6-declarative-devel qt6-websockets-devel"
+makedepends="qt6-base-private-devel qt6-declarative-private-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/official_releases/qt/${version%.*}/${version}/submodules/qtwebchannel-everywhere-src-${version}.tar.xz"
-checksum=fddcb38e6d5843f9c7570654f1a12aaf0086e5a01f7bf3cf170064fcc5a3f51c
+checksum=ac5d96607b10e7de546eaf93bb9f65c0fd631ef9b91ef8a794e26fd57db4501c
 
 do_check() {
 	cd build

From 5568e5a30ccf98e88e53728c6a5a5ffd38b536ec Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:30 +0700
Subject: [PATCH 23/52] qt6-3d: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-3d/template b/srcpkgs/qt6-3d/template
index e20bcf8ad42fdc..6a61ebb2e1f1d2 100644
--- a/srcpkgs/qt6-3d/template
+++ b/srcpkgs/qt6-3d/template
@@ -1,16 +1,17 @@
 # Template file for 'qt6-3d'
 pkgname=qt6-3d
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-declarative-host-tools"
-makedepends="qt6-declarative-devel qt6-shadertools-devel libassimp-devel"
+makedepends="qt6-declarative-private-devel qt6-shadertools-devel libassimp-devel
+ qt6-base-private-devel"
 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=0da87a46217f4d72f6d0de9768605d5325ef3d093f73a5e0d73dd88e99c1fc2a
+checksum=8bc087d904973133186e58471845c5df376bbfdcfcf079fda287e1cda27c8adf
 
 qt6-3d-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision}"

From 72383da3fffe0d9a23ef44f301ec3a24754b5509 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:30 +0700
Subject: [PATCH 24/52] qt6-pdf: update to 6.7.2.

---
 .../qt6-pdf/patches/0001-None-no-debug.patch  |    6 +-
 srcpkgs/qt6-pdf/patches/0003-cross-hack.patch |   10 +-
 ....patch => 0004-no-glibc-cmake-check.patch} |    0
 .../qt6-pdf/patches/0004-riscv-angle.patch    |   28 -
 .../patches/0004-riscv-angle.patch.args       |    1 -
 .../qt6-pdf/patches/0005-riscv-crashpad.patch |  778 -------
 .../patches/0005-riscv-crashpad.patch.args    |    1 -
 .../qt6-pdf/patches/0006-riscv-dav1d.patch    |   44 -
 .../patches/0006-riscv-dav1d.patch.args       |    1 -
 .../qt6-pdf/patches/0007-riscv-sandbox.patch  | 1939 -----------------
 .../patches/0007-riscv-sandbox.patch.args     |    1 -
 .../patches/0008-rsicv-allocator.patch        |   11 -
 ...ERT-roll-src-third_party-ffmpeg-m102.patch |   52 +
 .../patches/0104-angle-wayland-include.patch  |   37 +
 ...mium-105.0.5195.52-python-six-1.16.0.patch |   84 +
 .../patches/0106-chromium-system-nodejs.patch |   29 -
 .../0107-chromium-114-maldoca-include.patch   |   20 +
 ...0108-chromium-115-compiler-SkColor4f.patch |   26 +
 .../0108-chromium-cursed^Uscoped_file.patch   |   18 -
 .../patches/0110-chromium-117-typename.patch  |   91 +
 .../patches/0111-chromium-cstdint.patch       |   10 -
 ...12-chromium-118-missing-header-files.patch |  379 ++++
 ...chromium-118-no_matching_constructor.patch |  410 ++++
 ...-chromium-118-python-3.12-deprecated.patch |   98 +
 ...karound_clang_bug-structured_binding.patch |   25 +
 ...0117-chromium-i686-vaapi-fpermissive.patch |   23 +
 .../patches/0117-chromium-musl-resolver.patch |   60 -
 ...chromium-revert-drop-of-system-java.patch} |    4 +-
 .../patches/0119-chromium-system-nodejs.patch |   20 +
 ...oss-build.patch => 0120-cross-build.patch} |   20 +-
 .../patches/0121-fc-cache-version.patch       |   13 +
 ...-aarch64-musl-memory-tagging-macros.patch} |    8 +-
 .../0123-fix-argument_spec-isnan-isinf.patch  |   11 +
 .../0124-fix-constexpr-narrowing.patch        |   21 +
 .../patches/0125-fix-dawn-platform.patch      |   55 +
 ...ix-missing-TEMP_FAILURE_RETRY-macro.patch} |    4 +-
 ...128-fix-missing-cstdint-include-musl.patch |   10 +
 .../0129-chromium-sandbox-shed_getparam.patch |   17 -
 ...9-fix-musl-missing-unistd_h-include.patch} |    2 +-
 ...130-fix-perfetto-GetThreadName-musl.patch} |    4 +-
 ...131-fix-swiftshader-llvm-musl-config.patch |    0
 ...bc-malloc.patch => 0132-libc_malloc.patch} |   10 +-
 .../patches/0133-musl-no-execinfo.patch       |   68 +
 ...info.patch => 0134-musl-no-mallinfo.patch} |  101 +-
 .../patches/0135-musl-partition-atfork.patch  |   11 +
 ...v8-monotonic-pthread-cont_timedwait.patch} |    4 +-
 ...context.patch => 0137-no-getcontext.patch} |    4 +-
 srcpkgs/qt6-pdf/patches/0138-no-mte.patch     |   11 +
 srcpkgs/qt6-pdf/patches/0139-old-clang.patch  |   11 +
 .../0140-reenable-linux-i686-builds.patch     |   19 +
 ...h => 0141-remove-sys-cdefs-includes.patch} |    8 +-
 .../patches/0142-sandbox-membarrier.patch     |   10 +
 srcpkgs/qt6-pdf/patches/0143-sndio.patch      |  849 ++++++++
 ...155-systypes.patch => 0144-systypes.patch} |    2 +-
 ...ndle-ffmpeg-av_stream_get_first_dts.patch} |    4 +-
 ...h => 0146-unbundled-cross-toolchain.patch} |    4 +-
 .../qt6-pdf/patches/0148-webrtc-size_t.patch  |   10 +
 .../patches/0152-chromium-webrtc-size_t.patch |   10 -
 .../patches/0153-chromium-webrtc-size_t.patch |   16 -
 .../qt6-pdf/patches/0154-chromium-uit_t.patch |   11 -
 .../patches/0300-chromium-musl-hacks.patch    |   38 -
 .../patches/0301-chromium-musl-sandbox.patch  |   70 -
 .../qt6-pdf/patches/0700-armv7l-neon.patch    |   10 -
 ...-chromium-musl-cross-no-asm_ptrace_h.patch |   30 -
 .../0751-chromium-musl-arm-user_vfp.patch     |   20 -
 .../0752-chromium-musl-arm-elf_auxv_t.patch   |   18 -
 .../0753-chromium-musl-32-bit-fstat.patch     |   13 -
 .../qt6-pdf/patches/0800-musl-sandbox.patch   |  121 +
 ...hing.patch => 0801-musl-tid-caching.patch} |   11 +-
 .../0802-musl-no-res-ninit-nclose.patch       |   20 +
 .../qt6-pdf/patches/0803-musl-include.patch   |   10 +
 srcpkgs/qt6-pdf/patches/0998-cross.patch      |   18 -
 .../patches/0998-example-cross-build.patch    |   11 +
 srcpkgs/qt6-pdf/patches/0999-python3.12.patch |   20 -
 .../1000-we-know-what-will-be-supported.patch |   18 +-
 ...tial-migration-from-imp-to-importlib.patch |   36 -
 .../qt6-pdf/patches/fix-libxml2-2.12.patch    |   34 -
 .../qt6-pdf/patches/pipewire-fcntl-call.patch |   18 -
 srcpkgs/qt6-pdf/template                      |   12 +-
 79 files changed, 2645 insertions(+), 3417 deletions(-)
 rename srcpkgs/qt6-pdf/patches/{0050-no-glibc-cmake-check.patch => 0004-no-glibc-cmake-check.patch} (100%)
 delete mode 100644 srcpkgs/qt6-pdf/patches/0004-riscv-angle.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0004-riscv-angle.patch.args
 delete mode 100644 srcpkgs/qt6-pdf/patches/0005-riscv-crashpad.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0005-riscv-crashpad.patch.args
 delete mode 100644 srcpkgs/qt6-pdf/patches/0006-riscv-dav1d.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0006-riscv-dav1d.patch.args
 delete mode 100644 srcpkgs/qt6-pdf/patches/0007-riscv-sandbox.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0007-riscv-sandbox.patch.args
 delete mode 100644 srcpkgs/qt6-pdf/patches/0008-rsicv-allocator.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0100-REVERT-roll-src-third_party-ffmpeg-m102.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0104-angle-wayland-include.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0106-chromium-105.0.5195.52-python-six-1.16.0.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0106-chromium-system-nodejs.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0107-chromium-114-maldoca-include.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0108-chromium-115-compiler-SkColor4f.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0108-chromium-cursed^Uscoped_file.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0110-chromium-117-typename.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0111-chromium-cstdint.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0112-chromium-118-missing-header-files.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0113-chromium-118-no_matching_constructor.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0114-chromium-118-python-3.12-deprecated.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0116-chromium-118-workaround_clang_bug-structured_binding.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0117-chromium-i686-vaapi-fpermissive.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0117-chromium-musl-resolver.patch
 rename srcpkgs/qt6-pdf/patches/{0105-chromium-revert-drop-of-system-java.patch => 0118-chromium-revert-drop-of-system-java.patch} (76%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0119-chromium-system-nodejs.patch
 rename srcpkgs/qt6-pdf/patches/{0107-chromium-cross-build.patch => 0120-cross-build.patch} (72%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0121-fc-cache-version.patch
 rename srcpkgs/qt6-pdf/patches/{0109-chromium-aarch64-musl-memory-tagging.patch => 0122-fix-aarch64-musl-memory-tagging-macros.patch} (73%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0123-fix-argument_spec-isnan-isinf.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0124-fix-constexpr-narrowing.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0125-fix-dawn-platform.patch
 rename srcpkgs/qt6-pdf/patches/{0110-chromium-fix-missing-TEMP_FAILURE_RETRY-macro.patch => 0127-fix-missing-TEMP_FAILURE_RETRY-macro.patch} (78%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0128-fix-missing-cstdint-include-musl.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0129-chromium-sandbox-shed_getparam.patch
 rename srcpkgs/qt6-pdf/patches/{0112-chromium-unistd.h.patch => 0129-fix-musl-missing-unistd_h-include.patch} (94%)
 rename srcpkgs/qt6-pdf/patches/{0116-chromium-musl-get-thread-name.patch => 0130-fix-perfetto-GetThreadName-musl.patch} (73%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0131-fix-swiftshader-llvm-musl-config.patch
 rename srcpkgs/qt6-pdf/patches/{0120-chromium-libc-malloc.patch => 0132-libc_malloc.patch} (66%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0133-musl-no-execinfo.patch
 rename srcpkgs/qt6-pdf/patches/{0302-chromium-no-mallinfo.patch => 0134-musl-no-mallinfo.patch} (50%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0135-musl-partition-atfork.patch
 rename srcpkgs/qt6-pdf/patches/{0122-chromium-condition_var.patch => 0136-musl-v8-monotonic-pthread-cont_timedwait.patch} (82%)
 rename srcpkgs/qt6-pdf/patches/{0123-chromium-musl-no-getcontext.patch => 0137-no-getcontext.patch} (72%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0138-no-mte.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0139-old-clang.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0140-reenable-linux-i686-builds.patch
 rename srcpkgs/qt6-pdf/patches/{0126-chromium-no-cdefs.patch => 0141-remove-sys-cdefs-includes.patch} (65%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0142-sandbox-membarrier.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0143-sndio.patch
 rename srcpkgs/qt6-pdf/patches/{0155-systypes.patch => 0144-systypes.patch} (93%)
 rename srcpkgs/qt6-pdf/patches/{0150-chromium-unbundle-ffmpeg-av_stream_get_first_dts.patch => 0145-unbundle-ffmpeg-av_stream_get_first_dts.patch} (56%)
 rename srcpkgs/qt6-pdf/patches/{0151-chromium-unbundled-cross-toolchain.patch => 0146-unbundled-cross-toolchain.patch} (56%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0148-webrtc-size_t.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0152-chromium-webrtc-size_t.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0153-chromium-webrtc-size_t.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0154-chromium-uit_t.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0300-chromium-musl-hacks.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0301-chromium-musl-sandbox.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0700-armv7l-neon.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0750-chromium-musl-cross-no-asm_ptrace_h.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0751-chromium-musl-arm-user_vfp.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0752-chromium-musl-arm-elf_auxv_t.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0753-chromium-musl-32-bit-fstat.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0800-musl-sandbox.patch
 rename srcpkgs/qt6-pdf/patches/{0010-chromium-musl-tid-caching.patch => 0801-musl-tid-caching.patch} (92%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0802-musl-no-res-ninit-nclose.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0803-musl-include.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0998-cross.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0998-example-cross-build.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0999-python3.12.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/Partial-migration-from-imp-to-importlib.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/fix-libxml2-2.12.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/pipewire-fcntl-call.patch

diff --git a/srcpkgs/qt6-pdf/patches/0001-None-no-debug.patch b/srcpkgs/qt6-pdf/patches/0001-None-no-debug.patch
index b221fdcd392faa..b6596bd57f646c 100644
--- a/srcpkgs/qt6-pdf/patches/0001-None-no-debug.patch
+++ b/srcpkgs/qt6-pdf/patches/0001-None-no-debug.patch
@@ -1,6 +1,6 @@
---- qt6-webengine-6.4.2.orig/cmake/Functions.cmake
-+++ qt6-webengine-6.4.2/cmake/Functions.cmake
-@@ -820,6 +820,8 @@ macro(append_build_type_setup)
+--- a/cmake/Functions.cmake
++++ b/cmake/Functions.cmake
+@@ -844,6 +844,8 @@ macro(append_build_type_setup)
          endif()
      elseif(${config} STREQUAL "MinSizeRel")
          list(APPEND gnArgArg is_debug=false symbol_level=0 optimize_for_size=true)
diff --git a/srcpkgs/qt6-pdf/patches/0003-cross-hack.patch b/srcpkgs/qt6-pdf/patches/0003-cross-hack.patch
index a3f0a5791406be..f82133d6746fe3 100644
--- a/srcpkgs/qt6-pdf/patches/0003-cross-hack.patch
+++ b/srcpkgs/qt6-pdf/patches/0003-cross-hack.patch
@@ -1,10 +1,10 @@
---- qt6-webengine-6.4.2.orig/src/core/api/CMakeLists.txt
-+++ qt6-webengine-6.4.2/src/core/api/CMakeLists.txt
-@@ -51,6 +51,7 @@ qt_internal_add_module(WebEngineCore
+--- a/src/core/api/CMakeLists.txt
++++ b/src/core/api/CMakeLists.txt
+@@ -57,6 +57,7 @@ qt_internal_add_module(WebEngineCore
          Qt::Gui
          Qt::Network
          Qt::Quick
 +        X11
+     EXTRA_CMAKE_FILES
+         "${CMAKE_CURRENT_LIST_DIR}/${INSTALL_CMAKE_NAMESPACE}WebEngineCoreDeploySupport.cmake"
  )
- 
- set_target_properties(WebEngineCore PROPERTIES QTWEBENGINEPROCESS_NAME ${qtWebEngineProcessName})
diff --git a/srcpkgs/qt6-pdf/patches/0050-no-glibc-cmake-check.patch b/srcpkgs/qt6-pdf/patches/0004-no-glibc-cmake-check.patch
similarity index 100%
rename from srcpkgs/qt6-pdf/patches/0050-no-glibc-cmake-check.patch
rename to srcpkgs/qt6-pdf/patches/0004-no-glibc-cmake-check.patch
diff --git a/srcpkgs/qt6-pdf/patches/0004-riscv-angle.patch b/srcpkgs/qt6-pdf/patches/0004-riscv-angle.patch
deleted file mode 100644
index 1aceb6f2d229e9..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0004-riscv-angle.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Index: chromium-111.0.5563.64/third_party/angle/gni/angle.gni
-===================================================================
---- chromium-111.0.5563.64.orig/third_party/angle/gni/angle.gni
-+++ chromium-111.0.5563.64/third_party/angle/gni/angle.gni
-@@ -105,7 +105,8 @@ declare_args() {
- 
-   if (current_cpu == "arm64" || current_cpu == "x64" ||
-       current_cpu == "mips64el" || current_cpu == "s390x" ||
--      current_cpu == "ppc64" || current_cpu == "loong64") {
-+      current_cpu == "ppc64" || current_cpu == "loong64" ||
-+      current_cpu == "riscv64") {
-     angle_64bit_current_cpu = true
-   } else if (current_cpu == "arm" || current_cpu == "x86" ||
-              current_cpu == "mipsel" || current_cpu == "s390" ||
-Index: chromium-111.0.5563.64/third_party/angle/src/common/platform.h
-===================================================================
---- chromium-111.0.5563.64.orig/third_party/angle/src/common/platform.h
-+++ chromium-111.0.5563.64/third_party/angle/src/common/platform.h
-@@ -108,7 +108,7 @@
- #endif
- 
- // Mips and arm devices need to include stddef for size_t.
--#if defined(__mips__) || defined(__arm__) || defined(__aarch64__)
-+#if defined(__mips__) || defined(__arm__) || defined(__aarch64__) || defined(__riscv)
- #    include <stddef.h>
- #endif
- 
-
diff --git a/srcpkgs/qt6-pdf/patches/0004-riscv-angle.patch.args b/srcpkgs/qt6-pdf/patches/0004-riscv-angle.patch.args
deleted file mode 100644
index d5f38e354e7f00..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0004-riscv-angle.patch.args
+++ /dev/null
@@ -1 +0,0 @@
--Np1 --directory=src/3rdparty/chromium/
diff --git a/srcpkgs/qt6-pdf/patches/0005-riscv-crashpad.patch b/srcpkgs/qt6-pdf/patches/0005-riscv-crashpad.patch
deleted file mode 100644
index 012a38c3886594..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0005-riscv-crashpad.patch
+++ /dev/null
@@ -1,778 +0,0 @@
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/minidump/minidump_context.h
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/minidump/minidump_context.h
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/minidump/minidump_context.h
-@@ -637,6 +637,41 @@ struct MinidumpContextMIPS64 {
-   uint64_t fir;
- };
- 
-+//! \brief 64bit RISC-V-specifc flags for MinidumpContextRISCV64::context_flags.
-+//! Based on minidump_cpu_riscv64.h from breakpad
-+enum MinidumpContextRISCV64Flags : uint32_t {
-+  //! \brief Identifies the context structure as RISCV64.
-+  kMinidumpContextRISCV64 = 0x00080000,
-+
-+  //! \brief Indicates the validity of integer registers.
-+  //!
-+  //! Registers `x1`-`x31` and pc are valid.
-+  kMinidumpContextRISCV64Integer = kMinidumpContextRISCV64 | 0x00000002,
-+
-+  //! \brief Indicates the validity of floating point registers.
-+  //!
-+  //! Floating point registers `f0`-`f31`, and `fcsr` are valid
-+  kMinidumpContextRISCV64FloatingPoint = kMinidumpContextRISCV64 | 0x00000004,
-+
-+  //! \brief Indicates the validity of all registers.
-+  kMinidumpContextRISCV64All = kMinidumpContextRISCV64Integer |
-+                              kMinidumpContextRISCV64FloatingPoint,
-+};
-+
-+//! \brief A 64bit RISCV CPU context (register state) carried in a minidump file.
-+struct MinidumpContextRISCV64 {
-+  uint64_t context_flags;
-+
-+  //! \brief General purpose registers.
-+  uint64_t regs[32];
-+
-+  //! \brief FPU registers.
-+  uint64_t fpregs[32];
-+
-+  //! \brief FPU status register.
-+  uint64_t fcsr;
-+};
-+
- }  // namespace crashpad
- 
- #endif  // CRASHPAD_MINIDUMP_MINIDUMP_CONTEXT_H_
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/minidump/minidump_context_writer.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/minidump/minidump_context_writer.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/minidump/minidump_context_writer.cc
-@@ -102,6 +102,13 @@ MinidumpContextWriter::CreateFromSnapsho
-       break;
-     }
- 
-+    case kCPUArchitectureRISCV64: {
-+      context = std::make_unique<MinidumpContextRISCV64Writer>();
-+      reinterpret_cast<MinidumpContextRISCV64Writer*>(context.get())
-+          ->InitializeFromSnapshot(context_snapshot->riscv64);
-+      break;
-+    }
-+
-     default: {
-       LOG(ERROR) << "unknown context architecture "
-                  << context_snapshot->architecture;
-@@ -555,5 +562,42 @@ size_t MinidumpContextMIPS64Writer::Cont
-   DCHECK_GE(state(), kStateFrozen);
-   return sizeof(context_);
- }
-+
-+MinidumpContextRISCV64Writer::MinidumpContextRISCV64Writer()
-+    : MinidumpContextWriter(), context_() {
-+  context_.context_flags = kMinidumpContextRISCV64;
-+}
-+
-+MinidumpContextRISCV64Writer::~MinidumpContextRISCV64Writer() = default;
-+
-+void MinidumpContextRISCV64Writer::InitializeFromSnapshot(
-+    const CPUContextRISCV64* context_snapshot) {
-+  DCHECK_EQ(state(), kStateMutable);
-+  DCHECK_EQ(context_.context_flags, kMinidumpContextRISCV64);
-+
-+  context_.context_flags = kMinidumpContextRISCV64All;
-+
-+  static_assert(sizeof(context_.regs) == sizeof(context_snapshot->regs),
-+                "GPRs size mismatch");
-+  memcpy(context_.regs, context_snapshot->regs, sizeof(context_.regs));
-+
-+  static_assert(sizeof(context_.fpregs) == sizeof(context_snapshot->fpregs),
-+                "FPRs size mismatch");
-+  memcpy(context_.fpregs,
-+         context_snapshot->fpregs,
-+         sizeof(context_.fpregs));
-+  context_.fcsr = context_snapshot->fcsr;
-+}
-+
-+bool MinidumpContextRISCV64Writer::WriteObject(
-+    FileWriterInterface* file_writer) {
-+  DCHECK_EQ(state(), kStateWritable);
-+  return file_writer->Write(&context_, sizeof(context_));
-+}
-+
-+size_t MinidumpContextRISCV64Writer::ContextSize() const {
-+  DCHECK_GE(state(), kStateFrozen);
-+  return sizeof(context_);
-+}
- 
- }  // namespace crashpad
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/minidump/minidump_context_writer.h
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/minidump/minidump_context_writer.h
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/minidump/minidump_context_writer.h
-@@ -369,6 +369,49 @@ class MinidumpContextMIPS64Writer final
-   MinidumpContextMIPS64 context_;
- };
- 
-+//! \brief The writer for a MinidumpContextRISCV64 structure in a minidump file.
-+class MinidumpContextRISCV64Writer final : public MinidumpContextWriter {
-+ public:
-+  MinidumpContextRISCV64Writer();
-+
-+  MinidumpContextRISCV64Writer(const MinidumpContextRISCV64Writer&) = delete;
-+  MinidumpContextRISCV64Writer& operator=(const MinidumpContextRISCV64Writer&) =
-+      delete;
-+
-+  ~MinidumpContextRISCV64Writer() override;
-+
-+  //! \brief Initializes the MinidumpContextRISCV based on \a context_snapshot.
-+  //!
-+  //! \param[in] context_snapshot The context snapshot to use as source data.
-+  //!
-+  //! \note Valid in #kStateMutable. No mutation of context() may be done before
-+  //!     calling this method, and it is not normally necessary to alter
-+  //!     context() after calling this method.
-+  void InitializeFromSnapshot(const CPUContextRISCV64* context_snapshot);
-+
-+  //! \brief Returns a pointer to the context structure that this object will
-+  //!     write.
-+  //!
-+  //! \attention This returns a non-`const` pointer to this object’s private
-+  //!     data so that a caller can populate the context structure directly.
-+  //!     This is done because providing setter interfaces to each field in the
-+  //!     context structure would be unwieldy and cumbersome. Care must be taken
-+  //!     to populate the context structure correctly. The context structure
-+  //!     must only be modified while this object is in the #kStateMutable
-+  //!     state.
-+  MinidumpContextRISCV64* context() { return &context_; }
-+
-+ protected:
-+  // MinidumpWritable:
-+  bool WriteObject(FileWriterInterface* file_writer) override;
-+
-+  // MinidumpContextWriter:
-+  size_t ContextSize() const override;
-+
-+ private:
-+  MinidumpContextRISCV64 context_;
-+};
-+
- }  // namespace crashpad
- 
- #endif  // CRASHPAD_MINIDUMP_MINIDUMP_CONTEXT_WRITER_H_
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc
-@@ -175,6 +175,10 @@ std::string MinidumpMiscInfoDebugBuildSt
-   static constexpr char kCPU[] = "mips";
- #elif defined(ARCH_CPU_MIPS64EL)
-   static constexpr char kCPU[] = "mips64";
-+#elif defined(ARCH_CPU_RISCV32)
-+  static constexpr char kCPU[] = "riscv32";
-+#elif defined(ARCH_CPU_RISCV64)
-+  static constexpr char kCPU[] = "riscv64";
- #else
- #error define kCPU for this CPU
- #endif
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/capture_memory.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/capture_memory.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/capture_memory.cc
-@@ -117,6 +117,16 @@ void CaptureMemory::PointedToByContext(c
-   for (size_t i = 0; i < std::size(context.mipsel->regs); ++i) {
-     MaybeCaptureMemoryAround(delegate, context.mipsel->regs[i]);
-   }
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+  if (context.architecture == kCPUArchitectureRISCV64) {
-+    for (size_t i = 0; i < std::size(context.riscv64->regs); ++i) {
-+      MaybeCaptureMemoryAround(delegate, context.riscv64->regs[i]);
-+    }
-+  } else {
-+    for (size_t i = 0; i < std::size(context.riscv32->regs); ++i) {
-+      MaybeCaptureMemoryAround(delegate, context.riscv32->regs[i]);
-+    }
-+  }
- #else
- #error Port.
- #endif
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/cpu_architecture.h
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/cpu_architecture.h
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/cpu_architecture.h
-@@ -43,7 +43,13 @@ enum CPUArchitecture {
-   kCPUArchitectureMIPSEL,
- 
-   //! \brief 64-bit MIPSEL.
--  kCPUArchitectureMIPS64EL
-+  kCPUArchitectureMIPS64EL,
-+
-+  //! \brief 32-bit RISCV.
-+  kCPUArchitectureRISCV32,
-+
-+  //! \brief 64-bit RISCV.
-+  kCPUArchitectureRISCV64
- };
- 
- }  // namespace crashpad
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/cpu_context.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/cpu_context.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/cpu_context.cc
-@@ -226,10 +226,12 @@ bool CPUContext::Is64Bit() const {
-     case kCPUArchitectureX86_64:
-     case kCPUArchitectureARM64:
-     case kCPUArchitectureMIPS64EL:
-+    case kCPUArchitectureRISCV64:
-       return true;
-     case kCPUArchitectureX86:
-     case kCPUArchitectureARM:
-     case kCPUArchitectureMIPSEL:
-+    case kCPUArchitectureRISCV32:
-       return false;
-     default:
-       NOTREACHED();
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/cpu_context.h
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/cpu_context.h
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/cpu_context.h
-@@ -362,6 +362,20 @@ struct CPUContextMIPS64 {
-   uint64_t fir;
- };
- 
-+//! \brief A context structure carrying RISCV32 CPU state.
-+struct CPUContextRISCV32 {
-+  uint32_t regs[32];
-+  uint64_t fpregs[32];
-+  uint32_t fcsr;
-+};
-+
-+//! \brief A context structure carrying RISCV64 CPU state.
-+struct CPUContextRISCV64 {
-+  uint64_t regs[32];
-+  uint64_t fpregs[32];
-+  uint32_t fcsr;
-+};
-+
- //! \brief A context structure capable of carrying the context of any supported
- //!     CPU architecture.
- struct CPUContext {
-@@ -402,6 +416,8 @@ struct CPUContext {
-     CPUContextARM64* arm64;
-     CPUContextMIPS* mipsel;
-     CPUContextMIPS64* mips64;
-+    CPUContextRISCV32* riscv32;
-+    CPUContextRISCV64* riscv64;
-   };
- };
- 
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.cc
-@@ -266,6 +266,30 @@ void InitializeCPUContextARM64_OnlyFPSIM
-   context->fpcr = float_context.fpcr;
- }
- 
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+
-+template <typename Traits>
-+void InitializeCPUContextRISCV(
-+    const typename Traits::SignalThreadContext& thread_context,
-+    const typename Traits::SignalFloatContext& float_context,
-+    typename Traits::CPUContext* context) {
-+  static_assert(sizeof(context->regs) == sizeof(thread_context),
-+                "registers size mismatch");
-+  static_assert(sizeof(context->fpregs) == sizeof(float_context.f),
-+                "fp registers size mismatch");
-+  memcpy(&context->regs, &thread_context, sizeof(context->regs));
-+  memcpy(&context->fpregs, &float_context.f, sizeof(context->fpregs));
-+  context->fcsr = float_context.fcsr;
-+}
-+template void InitializeCPUContextRISCV<ContextTraits32>(
-+    const ContextTraits32::SignalThreadContext& thread_context,
-+    const ContextTraits32::SignalFloatContext& float_context,
-+    ContextTraits32::CPUContext* context);
-+template void InitializeCPUContextRISCV<ContextTraits64>(
-+    const ContextTraits64::SignalThreadContext& thread_context,
-+    const ContextTraits64::SignalFloatContext& float_context,
-+    ContextTraits64::CPUContext* context);
-+
- #endif  // ARCH_CPU_X86_FAMILY
- 
- }  // namespace internal
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.h
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.h
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.h
-@@ -174,6 +174,22 @@ void InitializeCPUContextMIPS(
- 
- #endif  // ARCH_CPU_MIPS_FAMILY || DOXYGEN
- 
-+#if defined(ARCH_CPU_RISCV_FAMILY) || DOXYGEN
-+
-+//! \brief Initializes a CPUContextRISCV structure from native context
-+//!     structures on Linux.
-+//!
-+//! \param[in] thread_context The native thread context.
-+//! \param[in] float_context The native float context.
-+//! \param[out] context The CPUContextRISCV structure to initialize.
-+template <typename Traits>
-+void InitializeCPUContextRISCV(
-+    const typename Traits::SignalThreadContext& thread_context,
-+    const typename Traits::SignalFloatContext& float_context,
-+    typename Traits::CPUContext* context);
-+
-+#endif  // ARCH_CPU_RISCV_FAMILY || DOXYGEN
-+
- }  // namespace internal
- }  // namespace crashpad
- 
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.cc
-@@ -325,6 +325,61 @@ bool ExceptionSnapshotLinux::ReadContext
-       reader, context_address, context_.mips64);
- }
- 
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+
-+template <typename Traits>
-+static bool ReadContext(ProcessReaderLinux* reader,
-+                        LinuxVMAddress context_address,
-+                        typename Traits::CPUContext* dest_context) {
-+  const ProcessMemory* memory = reader->Memory();
-+
-+  LinuxVMAddress gregs_address = context_address +
-+                                 offsetof(UContext<Traits>, mcontext) +
-+                                 offsetof(typename Traits::MContext, gregs);
-+
-+  typename Traits::SignalThreadContext thread_context;
-+  if (!memory->Read(gregs_address, sizeof(thread_context), &thread_context)) {
-+    LOG(ERROR) << "Couldn't read gregs";
-+    return false;
-+  }
-+
-+  LinuxVMAddress fpregs_address = context_address +
-+                                  offsetof(UContext<Traits>, mcontext) +
-+                                  offsetof(typename Traits::MContext, fpregs);
-+
-+  typename Traits::SignalFloatContext fp_context;
-+  if (!memory->Read(fpregs_address, sizeof(fp_context), &fp_context)) {
-+    LOG(ERROR) << "Couldn't read fpregs";
-+    return false;
-+  }
-+
-+  InitializeCPUContextRISCV<Traits>(thread_context, fp_context, dest_context);
-+
-+  return true;
-+}
-+
-+template <>
-+bool ExceptionSnapshotLinux::ReadContext<ContextTraits32>(
-+    ProcessReaderLinux* reader,
-+    LinuxVMAddress context_address) {
-+  context_.architecture = kCPUArchitectureRISCV32;
-+  context_.riscv32 = &context_union_.riscv32;
-+
-+  return internal::ReadContext<ContextTraits32>(
-+      reader, context_address, context_.riscv32);
-+}
-+
-+template <>
-+bool ExceptionSnapshotLinux::ReadContext<ContextTraits64>(
-+    ProcessReaderLinux* reader,
-+    LinuxVMAddress context_address) {
-+  context_.architecture = kCPUArchitectureRISCV64;
-+  context_.riscv64 = &context_union_.riscv64;
-+
-+  return internal::ReadContext<ContextTraits64>(
-+      reader, context_address, context_.riscv64);
-+}
-+
- #endif  // ARCH_CPU_X86_FAMILY
- 
- bool ExceptionSnapshotLinux::Initialize(
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.h
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.h
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.h
-@@ -89,6 +89,9 @@ class ExceptionSnapshotLinux final : pub
- #elif defined(ARCH_CPU_MIPS_FAMILY)
-     CPUContextMIPS mipsel;
-     CPUContextMIPS64 mips64;
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+    CPUContextRISCV32 riscv32;
-+    CPUContextRISCV64 riscv64;
- #endif
-   } context_union_;
-   CPUContext context_;
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/process_reader_linux.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/linux/process_reader_linux.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/process_reader_linux.cc
-@@ -127,6 +127,9 @@ void ProcessReaderLinux::Thread::Initial
- #elif defined(ARCH_CPU_MIPS_FAMILY)
-   stack_pointer = reader->Is64Bit() ? thread_info.thread_context.t64.regs[29]
-                                     : thread_info.thread_context.t32.regs[29];
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+  stack_pointer = reader->Is64Bit() ? thread_info.thread_context.t64.sp
-+                                    : thread_info.thread_context.t32.sp;
- #else
- #error Port.
- #endif
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/signal_context.h
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/linux/signal_context.h
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/signal_context.h
-@@ -422,6 +422,67 @@ static_assert(offsetof(UContext<ContextT
-               "context offset mismatch");
- #endif
- 
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+
-+struct MContext32 {
-+  uint32_t gregs[32];
-+  uint64_t fpregs[32];
-+  unsigned int fcsr;
-+};
-+
-+struct MContext64 {
-+  uint64_t gregs[32];
-+  uint64_t fpregs[32];
-+  unsigned int fcsr;
-+};
-+
-+struct ContextTraits32 : public Traits32 {
-+  using MContext = MContext32;
-+  using SignalThreadContext = ThreadContext::t32_t;
-+  using SignalFloatContext = FloatContext::f32_t;
-+  using CPUContext = CPUContextRISCV32;
-+};
-+
-+struct ContextTraits64 : public Traits64 {
-+  using MContext = MContext64;
-+  using SignalThreadContext = ThreadContext::t64_t;
-+  using SignalFloatContext = FloatContext::f64_t;
-+  using CPUContext = CPUContextRISCV64;
-+};
-+
-+template <typename Traits>
-+struct UContext {
-+  typename Traits::ULong flags;
-+  typename Traits::Address link;
-+  SignalStack<Traits> stack;
-+  Sigset<Traits> sigmask;
-+  char padding[128 - sizeof(sigmask)];
-+  typename Traits::Char_64Only padding2[8];
-+  typename Traits::MContext mcontext;
-+};
-+
-+#if defined(ARCH_CPU_RISCV32)
-+static_assert(offsetof(UContext<ContextTraits32>, mcontext) ==
-+                  offsetof(ucontext_t, uc_mcontext),
-+              "context offset mismatch");
-+static_assert(offsetof(UContext<ContextTraits32>, mcontext.gregs) ==
-+                  offsetof(ucontext_t, uc_mcontext.__gregs),
-+              "context offset mismatch");
-+static_assert(offsetof(UContext<ContextTraits32>, mcontext.fpregs) ==
-+                  offsetof(ucontext_t, uc_mcontext.__fpregs),
-+              "context offset mismatch");
-+#elif defined(ARCH_CPU_RISCV64)
-+static_assert(offsetof(UContext<ContextTraits64>, mcontext) ==
-+                  offsetof(ucontext_t, uc_mcontext),
-+              "context offset mismatch");
-+static_assert(offsetof(UContext<ContextTraits64>, mcontext.gregs) ==
-+                  offsetof(ucontext_t, uc_mcontext.__gregs),
-+              "context offset mismatch");
-+static_assert(offsetof(UContext<ContextTraits64>, mcontext.fpregs) ==
-+                  offsetof(ucontext_t, uc_mcontext.__fpregs),
-+              "context offset mismatch");
-+#endif
-+
- #else
- #error Port.
- #endif  // ARCH_CPU_X86_FAMILY
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/system_snapshot_linux.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/linux/system_snapshot_linux.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/system_snapshot_linux.cc
-@@ -205,6 +205,9 @@ CPUArchitecture SystemSnapshotLinux::Get
- #elif defined(ARCH_CPU_MIPS_FAMILY)
-   return process_reader_->Is64Bit() ? kCPUArchitectureMIPS64EL
-                                     : kCPUArchitectureMIPSEL;
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+  return process_reader_->Is64Bit() ? kCPUArchitectureRISCV64
-+                                    : kCPUArchitectureRISCV32;
- #else
- #error port to your architecture
- #endif
-@@ -220,6 +223,9 @@ uint32_t SystemSnapshotLinux::CPURevisio
- #elif defined(ARCH_CPU_MIPS_FAMILY)
-   // Not implementable on MIPS
-   return 0;
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+  // Not implementable on RISCV
-+  return 0;
- #else
- #error port to your architecture
- #endif
-@@ -240,6 +246,9 @@ std::string SystemSnapshotLinux::CPUVend
- #elif defined(ARCH_CPU_MIPS_FAMILY)
-   // Not implementable on MIPS
-   return std::string();
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+  // Not implementable on RISCV
-+  return std::string();
- #else
- #error port to your architecture
- #endif
-@@ -373,6 +382,9 @@ bool SystemSnapshotLinux::NXEnabled() co
- #elif defined(ARCH_CPU_MIPS_FAMILY)
-   // Not implementable on MIPS
-   return false;
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+  // Not implementable on RISCV
-+  return false;
- #else
- #error Port.
- #endif  // ARCH_CPU_X86_FAMILY
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.cc
-@@ -190,6 +190,22 @@ bool ThreadSnapshotLinux::Initialize(
-         thread.thread_info.float_context.f32,
-         context_.mipsel);
-   }
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+  if (process_reader->Is64Bit()) {
-+    context_.architecture = kCPUArchitectureRISCV64;
-+    context_.riscv64 = &context_union_.riscv64;
-+    InitializeCPUContextRISCV<ContextTraits64>(
-+	thread.thread_info.thread_context.t64,
-+	thread.thread_info.float_context.f64,
-+	context_.riscv64);
-+  } else {
-+    context_.architecture = kCPUArchitectureRISCV32;
-+    context_.riscv32 = &context_union_.riscv32;
-+    InitializeCPUContextRISCV<ContextTraits32>(
-+	thread.thread_info.thread_context.t32,
-+	thread.thread_info.float_context.f32,
-+	context_.riscv32);
-+  }
- #else
- #error Port.
- #endif
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.h
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.h
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.h
-@@ -74,6 +74,9 @@ class ThreadSnapshotLinux final : public
- #elif defined(ARCH_CPU_MIPS_FAMILY)
-     CPUContextMIPS mipsel;
-     CPUContextMIPS64 mips64;
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+    CPUContextRISCV32 riscv32;
-+    CPUContextRISCV64 riscv64;
- #else
- #error Port.
- #endif  // ARCH_CPU_X86_FAMILY
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/util/linux/ptracer.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/util/linux/ptracer.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/util/linux/ptracer.cc
-@@ -398,6 +398,51 @@ bool GetThreadArea64(pid_t tid,
-   return true;
- }
- 
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+
-+template <typename Destination>
-+bool GetRegisterSet(pid_t tid, int set, Destination* dest, bool can_log) {
-+  iovec iov;
-+  iov.iov_base = dest;
-+  iov.iov_len = sizeof(*dest);
-+  if (ptrace(PTRACE_GETREGSET, tid, reinterpret_cast<void*>(set), &iov) != 0) {
-+    PLOG_IF(ERROR, can_log) << "ptrace";
-+    return false;
-+  }
-+  if (iov.iov_len != sizeof(*dest)) {
-+    LOG_IF(ERROR, can_log) << "Unexpected registers size";
-+    return false;
-+  }
-+  return true;
-+}
-+
-+bool GetFloatingPointRegisters32(pid_t tid,
-+                                 FloatContext* context,
-+                                 bool can_log) {
-+  return false;
-+}
-+
-+bool GetFloatingPointRegisters64(pid_t tid,
-+                                 FloatContext* context,
-+                                 bool can_log) {
-+  return GetRegisterSet(tid, NT_PRFPREG, &context->f64.f, can_log);
-+}
-+
-+bool GetThreadArea32(pid_t tid,
-+                     const ThreadContext& context,
-+                     LinuxVMAddress* address,
-+                     bool can_log) {
-+  return false;
-+}
-+
-+bool GetThreadArea64(pid_t tid,
-+                     const ThreadContext& context,
-+                     LinuxVMAddress* address,
-+                     bool can_log) {
-+  *address = context.t64.tp;
-+  return true;
-+}
-+
- #else
- #error Port.
- #endif  // ARCH_CPU_X86_FAMILY
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/util/linux/thread_info.h
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/util/linux/thread_info.h
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/util/linux/thread_info.h
-@@ -79,6 +79,40 @@ union ThreadContext {
-     uint32_t cp0_status;
-     uint32_t cp0_cause;
-     uint32_t padding1_;
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+    // Reflects user_regs_struct in asm/ptrace.h.
-+    uint32_t pc;
-+    uint32_t ra;
-+    uint32_t sp;
-+    uint32_t gp;
-+    uint32_t tp;
-+    uint32_t t0;
-+    uint32_t t1;
-+    uint32_t t2;
-+    uint32_t s0;
-+    uint32_t s1;
-+    uint32_t a0;
-+    uint32_t a1;
-+    uint32_t a2;
-+    uint32_t a3;
-+    uint32_t a4;
-+    uint32_t a5;
-+    uint32_t a6;
-+    uint32_t a7;
-+    uint32_t s2;
-+    uint32_t s3;
-+    uint32_t s4;
-+    uint32_t s5;
-+    uint32_t s6;
-+    uint32_t s7;
-+    uint32_t s8;
-+    uint32_t s9;
-+    uint32_t s10;
-+    uint32_t s11;
-+    uint32_t t3;
-+    uint32_t t4;
-+    uint32_t t5;
-+    uint32_t t6;
- #else
- #error Port.
- #endif  // ARCH_CPU_X86_FAMILY
-@@ -132,6 +166,40 @@ union ThreadContext {
-     uint64_t cp0_badvaddr;
-     uint64_t cp0_status;
-     uint64_t cp0_cause;
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+    // Reflects user_regs_struct in asm/ptrace.h.
-+    uint64_t pc;
-+    uint64_t ra;
-+    uint64_t sp;
-+    uint64_t gp;
-+    uint64_t tp;
-+    uint64_t t0;
-+    uint64_t t1;
-+    uint64_t t2;
-+    uint64_t s0;
-+    uint64_t s1;
-+    uint64_t a0;
-+    uint64_t a1;
-+    uint64_t a2;
-+    uint64_t a3;
-+    uint64_t a4;
-+    uint64_t a5;
-+    uint64_t a6;
-+    uint64_t a7;
-+    uint64_t s2;
-+    uint64_t s3;
-+    uint64_t s4;
-+    uint64_t s5;
-+    uint64_t s6;
-+    uint64_t s7;
-+    uint64_t s8;
-+    uint64_t s9;
-+    uint64_t s10;
-+    uint64_t s11;
-+    uint64_t t3;
-+    uint64_t t4;
-+    uint64_t t5;
-+    uint64_t t6;
- #else
- #error Port.
- #endif  // ARCH_CPU_X86_FAMILY
-@@ -143,11 +211,12 @@ union ThreadContext {
-   using NativeThreadContext = user_regs;
- #elif defined(ARCH_CPU_MIPS_FAMILY)
- // No appropriate NativeThreadsContext type available for MIPS
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
- #else
- #error Port.
- #endif  // ARCH_CPU_X86_FAMILY || ARCH_CPU_ARM64
- 
--#if !defined(ARCH_CPU_MIPS_FAMILY)
-+#if !defined(ARCH_CPU_MIPS_FAMILY) && !defined(ARCH_CPU_RISCV_FAMILY)
- #if defined(ARCH_CPU_32_BITS)
-   static_assert(sizeof(t32_t) == sizeof(NativeThreadContext), "Size mismatch");
- #else  // ARCH_CPU_64_BITS
-@@ -218,6 +287,9 @@ union FloatContext {
-     } fpregs[32];
-     uint32_t fpcsr;
-     uint32_t fpu_id;
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+    uint64_t f[32];
-+    uint32_t fcsr;
- #else
- #error Port.
- #endif  // ARCH_CPU_X86_FAMILY
-@@ -252,6 +324,9 @@ union FloatContext {
-     double fpregs[32];
-     uint32_t fpcsr;
-     uint32_t fpu_id;
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+    uint64_t f[32];
-+    uint32_t fcsr;
- #else
- #error Port.
- #endif  // ARCH_CPU_X86_FAMILY
-@@ -281,6 +356,7 @@ union FloatContext {
-   static_assert(sizeof(f64) == sizeof(user_fpsimd_struct), "Size mismatch");
- #elif defined(ARCH_CPU_MIPS_FAMILY)
- // No appropriate floating point context native type for available MIPS.
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
- #else
- #error Port.
- #endif  // ARCH_CPU_X86
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/util/net/http_transport_libcurl.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/util/net/http_transport_libcurl.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/util/net/http_transport_libcurl.cc
-@@ -237,6 +237,8 @@ std::string UserAgent() {
- #elif defined(ARCH_CPU_BIG_ENDIAN)
-     static constexpr char arch[] = "aarch64_be";
- #endif
-+#elif defined(ARCH_CPU_RISCV64)
-+    static constexpr char arch[] = "riscv64";
- #else
- #error Port
- #endif
-
diff --git a/srcpkgs/qt6-pdf/patches/0005-riscv-crashpad.patch.args b/srcpkgs/qt6-pdf/patches/0005-riscv-crashpad.patch.args
deleted file mode 100644
index d5f38e354e7f00..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0005-riscv-crashpad.patch.args
+++ /dev/null
@@ -1 +0,0 @@
--Np1 --directory=src/3rdparty/chromium/
diff --git a/srcpkgs/qt6-pdf/patches/0006-riscv-dav1d.patch b/srcpkgs/qt6-pdf/patches/0006-riscv-dav1d.patch
deleted file mode 100644
index 12ad07275bd34b..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0006-riscv-dav1d.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-Index: chromium-102.0.5005.61/third_party/dav1d/config/linux/riscv64/config.h
-===================================================================
---- /dev/null
-+++ chromium-102.0.5005.61/third_party/dav1d/config/linux/riscv64/config.h
-@@ -0,0 +1,38 @@
-+/*
-+ * Autogenerated by the Meson build system.
-+ * Do not edit, your changes will be lost.
-+ */
-+
-+#pragma once
-+
-+#define ARCH_AARCH64 0
-+
-+#define ARCH_ARM 0
-+
-+#define ARCH_PPC64LE 0
-+
-+#define ARCH_X86 0
-+
-+#define ARCH_X86_32 0
-+
-+#define ARCH_X86_64 0
-+
-+#define CONFIG_16BPC 1
-+
-+#define CONFIG_8BPC 1
-+
-+// #define CONFIG_LOG 1 -- Logging is controlled by Chromium
-+
-+#define ENDIANNESS_BIG 0
-+
-+#define HAVE_ASM 0
-+
-+#define HAVE_AS_FUNC 0
-+
-+#define HAVE_CLOCK_GETTIME 1
-+
-+#define HAVE_GETAUXVAL 1
-+
-+#define HAVE_POSIX_MEMALIGN 1
-+
-+#define HAVE_UNISTD_H 1
-
diff --git a/srcpkgs/qt6-pdf/patches/0006-riscv-dav1d.patch.args b/srcpkgs/qt6-pdf/patches/0006-riscv-dav1d.patch.args
deleted file mode 100644
index d5f38e354e7f00..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0006-riscv-dav1d.patch.args
+++ /dev/null
@@ -1 +0,0 @@
--Np1 --directory=src/3rdparty/chromium/
diff --git a/srcpkgs/qt6-pdf/patches/0007-riscv-sandbox.patch b/srcpkgs/qt6-pdf/patches/0007-riscv-sandbox.patch
deleted file mode 100644
index c04eb47a013617..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0007-riscv-sandbox.patch
+++ /dev/null
@@ -1,1939 +0,0 @@
-Index: chromium-107.0.5304.87/sandbox/features.gni
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/features.gni
-+++ chromium-107.0.5304.87/sandbox/features.gni
-@@ -9,7 +9,8 @@
- use_seccomp_bpf = (is_linux || is_chromeos || is_android) &&
-                   (current_cpu == "x86" || current_cpu == "x64" ||
-                    current_cpu == "arm" || current_cpu == "arm64" ||
--                   current_cpu == "mipsel" || current_cpu == "mips64el")
-+                   current_cpu == "mipsel" || current_cpu == "mips64el" ||
-+                   current_cpu == "riscv64")
- 
- # SSBD (Speculative Store Bypass Disable) is a mitigation of Spectre Variant 4.
- # As Spectre Variant 4 can be mitigated by site isolation, opt-out SSBD on site
-Index: chromium-107.0.5304.87/sandbox/linux/bpf_dsl/linux_syscall_ranges.h
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/bpf_dsl/linux_syscall_ranges.h
-+++ chromium-107.0.5304.87/sandbox/linux/bpf_dsl/linux_syscall_ranges.h
-@@ -56,6 +56,12 @@
- #define MAX_PUBLIC_SYSCALL __NR_syscalls
- #define MAX_SYSCALL MAX_PUBLIC_SYSCALL
- 
-+#elif defined(__riscv)
-+
-+#define MIN_SYSCALL 0u
-+#define MAX_PUBLIC_SYSCALL 1024u
-+#define MAX_SYSCALL MAX_PUBLIC_SYSCALL
-+
- #else
- #error "Unsupported architecture"
- #endif
-Index: chromium-107.0.5304.87/sandbox/linux/bpf_dsl/seccomp_macros.h
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/bpf_dsl/seccomp_macros.h
-+++ chromium-107.0.5304.87/sandbox/linux/bpf_dsl/seccomp_macros.h
-@@ -343,6 +343,46 @@ struct regs_struct {
- #define SECCOMP_PT_PARM4(_regs) (_regs).regs[3]
- #define SECCOMP_PT_PARM5(_regs) (_regs).regs[4]
- #define SECCOMP_PT_PARM6(_regs) (_regs).regs[5]
-+
-+#elif defined(__riscv)
-+struct regs_struct {
-+  unsigned long regs[32];
-+};
-+
-+#define SECCOMP_ARCH AUDIT_ARCH_RISCV64
-+
-+#define SECCOMP_REG(_ctx, _reg) ((_ctx)->uc_mcontext.__gregs[_reg])
-+
-+#define SECCOMP_RESULT(_ctx) SECCOMP_REG(_ctx, REG_A0)
-+#define SECCOMP_SYSCALL(_ctx) SECCOMP_REG(_ctx, REG_A0+7)
-+#define SECCOMP_IP(_ctx) (_ctx)->uc_mcontext.__gregs[REG_PC]
-+#define SECCOMP_PARM1(_ctx) SECCOMP_REG(_ctx, REG_A0)
-+#define SECCOMP_PARM2(_ctx) SECCOMP_REG(_ctx, REG_A0+1)
-+#define SECCOMP_PARM3(_ctx) SECCOMP_REG(_ctx, REG_A0+2)
-+#define SECCOMP_PARM4(_ctx) SECCOMP_REG(_ctx, REG_A0+3)
-+#define SECCOMP_PARM5(_ctx) SECCOMP_REG(_ctx, REG_A0+4)
-+#define SECCOMP_PARM6(_ctx) SECCOMP_REG(_ctx, REG_A0+5)
-+
-+#define SECCOMP_NR_IDX (offsetof(struct arch_seccomp_data, nr))
-+#define SECCOMP_ARCH_IDX (offsetof(struct arch_seccomp_data, arch))
-+#define SECCOMP_IP_MSB_IDX \
-+  (offsetof(struct arch_seccomp_data, instruction_pointer) + 4)
-+#define SECCOMP_IP_LSB_IDX \
-+  (offsetof(struct arch_seccomp_data, instruction_pointer) + 0)
-+#define SECCOMP_ARG_MSB_IDX(nr) \
-+  (offsetof(struct arch_seccomp_data, args) + 8 * (nr) + 4)
-+#define SECCOMP_ARG_LSB_IDX(nr) \
-+  (offsetof(struct arch_seccomp_data, args) + 8 * (nr) + 0)
-+
-+#define SECCOMP_PT_RESULT(_regs) (_regs).regs[REG_A0]
-+#define SECCOMP_PT_SYSCALL(_regs) (_regs).regs[REG_A0+7]
-+#define SECCOMP_PT_IP(_regs) (_regs).regs[REG_PC]
-+#define SECCOMP_PT_PARM1(_regs) (_regs).regs[REG_A0]
-+#define SECCOMP_PT_PARM2(_regs) (_regs).regs[REG_A0+1]
-+#define SECCOMP_PT_PARM3(_regs) (_regs).regs[REG_A0+2]
-+#define SECCOMP_PT_PARM4(_regs) (_regs).regs[REG_A0+3]
-+#define SECCOMP_PT_PARM5(_regs) (_regs).regs[REG_A0+4]
-+#define SECCOMP_PT_PARM6(_regs) (_regs).regs[REG_A0+5]
- #else
- #error Unsupported target platform
- 
-Index: chromium-107.0.5304.87/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
-+++ chromium-107.0.5304.87/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
-@@ -61,6 +61,9 @@ bool IsBaselinePolicyAllowed(int sysno)
- #if defined(__mips__)
-          SyscallSets::IsMipsPrivate(sysno) ||
- #endif
-+#if defined(__riscv)
-+         SyscallSets::IsRiscvPrivate(sysno) ||
-+#endif
-          SyscallSets::IsAllowedOperationOnFd(sysno);
-   // clang-format on
- }
-@@ -198,7 +201,7 @@ ResultExpr EvaluateSyscallImpl(int fs_de
-     return RestrictFcntlCommands();
- #endif
- 
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-   // fork() is never used as a system call (clone() is used instead), but we
-   // have seen it in fallback code on Android.
-   if (sysno == __NR_fork) {
-@@ -253,7 +256,7 @@ ResultExpr EvaluateSyscallImpl(int fs_de
-   }
- 
- #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-   if (sysno == __NR_mmap)
-     return RestrictMmapFlags();
- #endif
-@@ -274,7 +277,7 @@ ResultExpr EvaluateSyscallImpl(int fs_de
-     return RestrictPrctl();
- 
- #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-   if (sysno == __NR_socketpair) {
-     // Only allow AF_UNIX, PF_UNIX. Crash if anything else is seen.
-     static_assert(AF_UNIX == PF_UNIX,
-Index: chromium-107.0.5304.87/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
-+++ chromium-107.0.5304.87/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
-@@ -37,6 +37,7 @@
- 
- #if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && \
-     !defined(__arm__) && !defined(__aarch64__) &&             \
-+    !defined(__riscv) &&                                      \
-     !defined(PTRACE_GET_THREAD_AREA)
- // Also include asm/ptrace-abi.h since ptrace.h in older libc (for instance
- // the one in Ubuntu 16.04 LTS) is missing PTRACE_GET_THREAD_AREA.
-@@ -442,7 +442,7 @@
- #endif
-   return Switch(request)
-       .Cases({
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-                  PTRACE_GETREGS, PTRACE_GETFPREGS, PTRACE_GET_THREAD_AREA,
-                  PTRACE_GETREGSET,
- #endif
-Index: chromium-107.0.5304.87/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
-+++ chromium-107.0.5304.87/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
-@@ -103,7 +103,7 @@ bool SyscallSets::IsUmask(int sysno) {
- // Both EPERM and ENOENT are valid errno unless otherwise noted in comment.
- bool SyscallSets::IsFileSystem(int sysno) {
-   switch (sysno) {
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_access:  // EPERM not a valid errno.
-     case __NR_chmod:
-     case __NR_chown:
-@@ -136,7 +136,7 @@ bool SyscallSets::IsFileSystem(int sysno
-     case __NR_faccessat2:
-     case __NR_fchmodat:
-     case __NR_fchownat:  // Should be called chownat ?
--#if defined(__x86_64__) || defined(__aarch64__)
-+#if defined(__x86_64__) || defined(__aarch64__) || defined(__riscv)
-     case __NR_newfstatat:  // fstatat(). EPERM not a valid errno.
- #elif defined(__i386__) || defined(__arm__) || \
-     (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
-@@ -226,7 +226,7 @@ bool SyscallSets::IsAllowedFileSystemAcc
-     case __NR_oldfstat:
- #endif
- #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-     case __NR_sync_file_range:  // EPERM not a valid errno.
- #elif defined(__arm__)
-     case __NR_arm_sync_file_range:  // EPERM not a valid errno.
-@@ -245,7 +245,7 @@ bool SyscallSets::IsDeniedFileSystemAcce
- #if defined(__i386__) || defined(__arm__)
-     case __NR_fchown32:
- #endif
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_getdents:    // EPERM not a valid errno.
- #endif
-     case __NR_getdents64:  // EPERM not a valid errno.
-@@ -324,7 +324,7 @@ bool SyscallSets::IsProcessPrivilegeChan
- bool SyscallSets::IsProcessGroupOrSession(int sysno) {
-   switch (sysno) {
-     case __NR_setpgid:
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_getpgrp:
- #endif
-     case __NR_setsid:
-@@ -358,7 +358,7 @@ bool SyscallSets::IsAllowedSignalHandlin
-     case __NR_rt_sigqueueinfo:
-     case __NR_rt_sigsuspend:
-     case __NR_rt_tgsigqueueinfo:
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_signalfd:
- #endif
-     case __NR_signalfd4:
-@@ -382,12 +382,12 @@ bool SyscallSets::IsAllowedOperationOnFd
-   switch (sysno) {
-     case __NR_close:
-     case __NR_dup:
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_dup2:
- #endif
-     case __NR_dup3:
- #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-     case __NR_shutdown:
- #endif
-       return true;
-@@ -426,7 +426,7 @@ bool SyscallSets::IsAllowedProcessStartO
-       return true;
-     case __NR_clone:  // Should be parameter-restricted.
-     case __NR_setns:  // Privileged.
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_fork:
- #endif
- #if defined(__i386__) || defined(__x86_64__)
-@@ -437,7 +437,7 @@ bool SyscallSets::IsAllowedProcessStartO
- #endif
-     case __NR_set_tid_address:
-     case __NR_unshare:
--#if !defined(__mips__) && !defined(__aarch64__)
-+#if !defined(__mips__) && !defined(__aarch64__) && !defined(__riscv)
-     case __NR_vfork:
- #endif
-     default:
-@@ -462,7 +462,7 @@ bool SyscallSets::IsAllowedFutex(int sys
- 
- bool SyscallSets::IsAllowedEpoll(int sysno) {
-   switch (sysno) {
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_epoll_create:
-     case __NR_epoll_wait:
- #endif
-@@ -500,7 +500,7 @@ bool SyscallSets::IsAllowedGetOrModifySo
- bool SyscallSets::IsDeniedGetOrModifySocket(int sysno) {
-   switch (sysno) {
- #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-     case __NR_accept:
-     case __NR_accept4:
-     case __NR_bind:
-@@ -554,7 +554,7 @@ bool SyscallSets::IsAllowedAddressSpaceA
-     case __NR_mincore:
-     case __NR_mlockall:
- #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-     case __NR_mmap:
- #endif
- #if defined(__i386__) || defined(__arm__) || \
-@@ -587,7 +587,7 @@ bool SyscallSets::IsAllowedGeneralIo(int
-     (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
-     case __NR__llseek:
- #endif
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_poll:
- #endif
-     case __NR_ppoll:
-@@ -608,7 +608,7 @@ bool SyscallSets::IsAllowedGeneralIo(int
-     case __NR_recv:
- #endif
- #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-     case __NR_recvfrom:  // Could specify source.
-     case __NR_recvmsg:   // Could specify source.
- #endif
-@@ -623,7 +623,7 @@ bool SyscallSets::IsAllowedGeneralIo(int
-     case __NR_send:
- #endif
- #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-     case __NR_sendmsg:  // Could specify destination.
-     case __NR_sendto:   // Could specify destination.
- #endif
-@@ -672,7 +672,7 @@ bool SyscallSets::IsSeccomp(int sysno) {
- bool SyscallSets::IsAllowedBasicScheduler(int sysno) {
-   switch (sysno) {
-     case __NR_sched_yield:
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_pause:
- #endif
-     case __NR_nanosleep:
-@@ -756,7 +756,7 @@ bool SyscallSets::IsNuma(int sysno) {
-     case __NR_getcpu:
-     case __NR_mbind:
- #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-     case __NR_migrate_pages:
- #endif
-     case __NR_move_pages:
-@@ -791,7 +791,7 @@ bool SyscallSets::IsGlobalProcessEnviron
-   switch (sysno) {
-     case __NR_acct:  // Privileged.
- #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-     case __NR_getrlimit:
- #endif
- #if defined(__i386__) || defined(__arm__)
-@@ -826,7 +826,7 @@ bool SyscallSets::IsDebug(int sysno) {
- 
- bool SyscallSets::IsGlobalSystemStatus(int sysno) {
-   switch (sysno) {
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR__sysctl:
-     case __NR_sysfs:
- #endif
-@@ -844,7 +844,7 @@ bool SyscallSets::IsGlobalSystemStatus(i
- 
- bool SyscallSets::IsEventFd(int sysno) {
-   switch (sysno) {
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_eventfd:
- #endif
-     case __NR_eventfd2:
-@@ -896,7 +896,8 @@ bool SyscallSets::IsKeyManagement(int sy
- }
- 
- #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || \
--    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
-+    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) || \
-+    defined(__riscv)
- bool SyscallSets::IsSystemVSemaphores(int sysno) {
-   switch (sysno) {
-     case __NR_semctl:
-@@ -916,7 +917,8 @@ bool SyscallSets::IsSystemVSemaphores(in
- 
- #if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || \
-     defined(__aarch64__) ||                                         \
--    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
-+    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) || \
-+    defined(__riscv)
- // These give a lot of ambient authority and bypass the setuid sandbox.
- bool SyscallSets::IsSystemVSharedMemory(int sysno) {
-   switch (sysno) {
-@@ -932,7 +934,8 @@ bool SyscallSets::IsSystemVSharedMemory(
- #endif
- 
- #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || \
--    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
-+    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) || \
-+    defined(__riscv)
- bool SyscallSets::IsSystemVMessageQueue(int sysno) {
-   switch (sysno) {
-     case __NR_msgctl:
-@@ -963,7 +966,8 @@ bool SyscallSets::IsSystemVIpc(int sysno
- 
- bool SyscallSets::IsAnySystemV(int sysno) {
- #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || \
--    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
-+    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) || \
-+    defined(__riscv)
-   return IsSystemVMessageQueue(sysno) || IsSystemVSemaphores(sysno) ||
-          IsSystemVSharedMemory(sysno);
- #elif defined(__i386__) || \
-@@ -1000,7 +1004,7 @@ bool SyscallSets::IsAdvancedScheduler(in
- bool SyscallSets::IsInotify(int sysno) {
-   switch (sysno) {
-     case __NR_inotify_add_watch:
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_inotify_init:
- #endif
-     case __NR_inotify_init1:
-@@ -1138,7 +1142,7 @@ bool SyscallSets::IsMisc(int sysno) {
- #if defined(__x86_64__)
-     case __NR_tuxcall:
- #endif
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_vserver:
- #endif
-       return true;
-@@ -1173,6 +1177,17 @@ bool SyscallSets::IsArmPrivate(int sysno
- }
- #endif  // defined(__arm__)
- 
-+#if defined(__riscv)
-+bool SyscallSets::IsRiscvPrivate(int sysno) {
-+  switch (sysno) {
-+    case __NR_riscv_flush_icache:
-+      return true;
-+    default:
-+      return false;
-+  }
-+}
-+#endif  // defined(__riscv)
-+
- #if defined(__mips__)
- bool SyscallSets::IsMipsPrivate(int sysno) {
-   switch (sysno) {
-Index: chromium-107.0.5304.87/sandbox/linux/seccomp-bpf-helpers/syscall_sets.h
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/seccomp-bpf-helpers/syscall_sets.h
-+++ chromium-107.0.5304.87/sandbox/linux/seccomp-bpf-helpers/syscall_sets.h
-@@ -52,7 +52,7 @@ class SANDBOX_EXPORT SyscallSets {
- #endif
- 
- #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-   static bool IsNetworkSocketInformation(int sysno);
- #endif
- 
-@@ -79,18 +79,21 @@ class SANDBOX_EXPORT SyscallSets {
-   static bool IsAsyncIo(int sysno);
-   static bool IsKeyManagement(int sysno);
- #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || \
--    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
-+    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) || \
-+    defined(__riscv)
-   static bool IsSystemVSemaphores(int sysno);
- #endif
- #if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || \
-     defined(__aarch64__) ||                                         \
--    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
-+    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) || \
-+    defined(__riscv)
-   // These give a lot of ambient authority and bypass the setuid sandbox.
-   static bool IsSystemVSharedMemory(int sysno);
- #endif
- 
- #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || \
--    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
-+    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) || \
-+    defined(__riscv)
-   static bool IsSystemVMessageQueue(int sysno);
- #endif
- 
-@@ -117,6 +120,9 @@ class SANDBOX_EXPORT SyscallSets {
-   static bool IsMipsPrivate(int sysno);
-   static bool IsMipsMisc(int sysno);
- #endif  // defined(__mips__)
-+#if defined(__riscv)
-+  static bool IsRiscvPrivate(int sysno);
-+#endif
-   static bool IsGoogle3Threading(int sysno);
- };
- 
-Index: chromium-107.0.5304.87/sandbox/linux/seccomp-bpf/syscall.cc
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/seccomp-bpf/syscall.cc
-+++ chromium-107.0.5304.87/sandbox/linux/seccomp-bpf/syscall.cc
-@@ -18,7 +18,7 @@ namespace sandbox {
- namespace {
- 
- #if defined(ARCH_CPU_X86_FAMILY) || defined(ARCH_CPU_ARM_FAMILY) || \
--    defined(ARCH_CPU_MIPS_FAMILY)
-+    defined(ARCH_CPU_MIPS_FAMILY) || defined(ARCH_CPU_RISCV_FAMILY)
- // Number that's not currently used by any Linux kernel ABIs.
- const int kInvalidSyscallNumber = 0x351d3;
- #else
-@@ -308,6 +308,28 @@ asm(// We need to be able to tell the ke
-     "2:ret\n"
-     ".cfi_endproc\n"
-     ".size SyscallAsm, .-SyscallAsm\n"
-+#elif defined(__riscv)
-+    ".text\n"
-+    ".align 2\n"
-+    ".type SyscallAsm, %function\n"
-+    "SyscallAsm:\n"
-+    ".cfi_startproc\n"
-+    "bgez a0,1f\n"
-+    "la a0,2f\n"
-+    "j 2f\n"
-+    "1:mv a7, a0\n"
-+    "ld a0, (t0)\n"
-+    "ld a1, 8(t0)\n"
-+    "ld a2, 16(t0)\n"
-+    "ld a3, 24(t0)\n"
-+    "ld a4, 32(t0)\n"
-+    "ld a5, 40(t0)\n"
-+    "ld a6, 48(t0)\n"
-+    // Enter the kernel
-+    "scall\n"
-+    "2:ret\n"
-+    ".cfi_endproc\n"
-+    ".size SyscallAsm, .-SyscallAsm\n"
- #endif
-     );  // asm
- 
-@@ -425,6 +447,18 @@ intptr_t Syscall::Call(int nr,
-     ret = inout;
-   }
- 
-+#elif defined(__riscv)
-+  intptr_t ret;
-+  {
-+    register intptr_t inout __asm__("a0") = nr;
-+    register const intptr_t* data __asm__("t0") = args;
-+    asm volatile("jal SyscallAsm\n"
-+                 : "+r"(inout)
-+                 : "r"(data)
-+                 : "memory", "a1", "a2", "a3", "a4", "a5", "a6");
-+    ret = inout;
-+  }
-+
- #else
- #error "Unimplemented architecture"
- #endif
-Index: chromium-107.0.5304.87/sandbox/linux/services/credentials.cc
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/services/credentials.cc
-+++ chromium-107.0.5304.87/sandbox/linux/services/credentials.cc
-@@ -80,7 +80,7 @@ bool ChrootToSafeEmptyDir() {
-   pid_t pid = -1;
-   alignas(16) char stack_buf[PTHREAD_STACK_MIN];
- #if defined(ARCH_CPU_X86_FAMILY) || defined(ARCH_CPU_ARM_FAMILY) || \
--    defined(ARCH_CPU_MIPS_FAMILY)
-+    defined(ARCH_CPU_MIPS_FAMILY) || defined(ARCH_CPU_RISCV_FAMILY)
-   // The stack grows downward.
-   void* stack = stack_buf + sizeof(stack_buf);
- #else
-Index: chromium-107.0.5304.87/sandbox/linux/services/syscall_wrappers.cc
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/services/syscall_wrappers.cc
-+++ chromium-107.0.5304.87/sandbox/linux/services/syscall_wrappers.cc
-@@ -61,7 +61,7 @@ long sys_clone(unsigned long flags,
- #if defined(ARCH_CPU_X86_64)
-   return syscall(__NR_clone, flags, child_stack, ptid, ctid, tls);
- #elif defined(ARCH_CPU_X86) || defined(ARCH_CPU_ARM_FAMILY) || \
--    defined(ARCH_CPU_MIPS_FAMILY)
-+    defined(ARCH_CPU_MIPS_FAMILY) || defined(ARCH_CPU_RISCV_FAMILY)
-   // CONFIG_CLONE_BACKWARDS defined.
-   return syscall(__NR_clone, flags, child_stack, ptid, tls, ctid);
- #endif
-Index: chromium-107.0.5304.87/sandbox/linux/syscall_broker/broker_process.cc
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/syscall_broker/broker_process.cc
-+++ chromium-107.0.5304.87/sandbox/linux/syscall_broker/broker_process.cc
-@@ -117,44 +117,46 @@ bool BrokerProcess::IsSyscallBrokerable(
-   // and are default disabled in Android. So, we should refuse to broker them
-   // to be consistent with the platform's restrictions.
-   switch (sysno) {
--#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID)
-+#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID) && !defined(__riscv)
-     case __NR_access:
- #endif
-     case __NR_faccessat:
-     case __NR_faccessat2:
-       return !fast_check || policy_->allowed_command_set.test(COMMAND_ACCESS);
- 
--#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID)
-+#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID) && !defined(__riscv)
-     case __NR_mkdir:
- #endif
-     case __NR_mkdirat:
-       return !fast_check || policy_->allowed_command_set.test(COMMAND_MKDIR);
- 
--#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID)
-+#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID) && !defined(__riscv)
-     case __NR_open:
- #endif
-     case __NR_openat:
-       return !fast_check || policy_->allowed_command_set.test(COMMAND_OPEN);
- 
--#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID)
-+#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID) && !defined(__riscv)
-     case __NR_readlink:
- #endif
-     case __NR_readlinkat:
-       return !fast_check || policy_->allowed_command_set.test(COMMAND_READLINK);
- 
--#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID)
-+#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID) && !defined(__riscv)
-     case __NR_rename:
- #endif
-+#ifdef __NR_renameat
-     case __NR_renameat:
-+#endif
-     case __NR_renameat2:
-       return !fast_check || policy_->allowed_command_set.test(COMMAND_RENAME);
- 
--#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID)
-+#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID) && !defined(__riscv)
-     case __NR_rmdir:
-       return !fast_check || policy_->allowed_command_set.test(COMMAND_RMDIR);
- #endif
- 
--#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID)
-+#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID) && !defined(__riscv)
-     case __NR_stat:
-     case __NR_lstat:
- #endif
-@@ -164,7 +166,7 @@ bool BrokerProcess::IsSyscallBrokerable(
- #if defined(__NR_fstatat64)
-     case __NR_fstatat64:
- #endif
--#if defined(__x86_64__) || defined(__aarch64__)
-+#if defined(__x86_64__) || defined(__aarch64__) || defined(__riscv)
-     case __NR_newfstatat:
- #endif
-       return !fast_check || policy_->allowed_command_set.test(COMMAND_STAT);
-@@ -179,7 +181,7 @@ bool BrokerProcess::IsSyscallBrokerable(
-       return !fast_check || policy_->allowed_command_set.test(COMMAND_STAT);
- #endif
- 
--#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID)
-+#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID) && !defined(__riscv)
-     case __NR_unlink:
-       return !fast_check || policy_->allowed_command_set.test(COMMAND_UNLINK);
- #endif
-Index: chromium-107.0.5304.87/sandbox/linux/system_headers/linux_seccomp.h
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/system_headers/linux_seccomp.h
-+++ chromium-107.0.5304.87/sandbox/linux/system_headers/linux_seccomp.h
-@@ -38,6 +38,9 @@
- #ifndef EM_AARCH64
- #define EM_AARCH64 183
- #endif
-+#ifndef EM_RISCV
-+#define EM_RISCV 243
-+#endif
- 
- #ifndef __AUDIT_ARCH_64BIT
- #define __AUDIT_ARCH_64BIT 0x80000000
-@@ -70,6 +73,9 @@
- #ifndef AUDIT_ARCH_AARCH64
- #define AUDIT_ARCH_AARCH64 (EM_AARCH64 | __AUDIT_ARCH_64BIT | __AUDIT_ARCH_LE)
- #endif
-+#ifndef AUDIT_ARCH_RISCV64
-+#define AUDIT_ARCH_RISCV64 (EM_RISCV|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)
-+#endif
- 
- // For prctl.h
- #ifndef PR_SET_SECCOMP
-Index: chromium-107.0.5304.87/sandbox/linux/system_headers/linux_signal.h
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/system_headers/linux_signal.h
-+++ chromium-107.0.5304.87/sandbox/linux/system_headers/linux_signal.h
-@@ -13,7 +13,7 @@
- // (not undefined, but defined different values and in different memory
- // layouts). So, fill the gap here.
- #if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
- 
- #define LINUX_SIGHUP 1
- #define LINUX_SIGINT 2
-Index: chromium-107.0.5304.87/sandbox/linux/system_headers/linux_stat.h
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/system_headers/linux_stat.h
-+++ chromium-107.0.5304.87/sandbox/linux/system_headers/linux_stat.h
-@@ -150,7 +150,7 @@ struct kernel_stat {
-   int st_blocks;
-   int st_pad4[14];
- };
--#elif defined(__aarch64__)
-+#elif defined(__aarch64__) || defined(__riscv)
- struct kernel_stat {
-   unsigned long st_dev;
-   unsigned long st_ino;
-Index: chromium-107.0.5304.87/sandbox/linux/system_headers/linux_syscalls.h
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/system_headers/linux_syscalls.h
-+++ chromium-107.0.5304.87/sandbox/linux/system_headers/linux_syscalls.h
-@@ -35,5 +35,9 @@
- #include "sandbox/linux/system_headers/arm64_linux_syscalls.h"
- #endif
- 
-+#if defined(__riscv) && __riscv_xlen == 64
-+#include "sandbox/linux/system_headers/riscv64_linux_syscalls.h"
-+#endif
-+
- #endif  // SANDBOX_LINUX_SYSTEM_HEADERS_LINUX_SYSCALLS_H_
- 
-Index: chromium-107.0.5304.87/sandbox/linux/system_headers/riscv64_linux_syscalls.h
-===================================================================
---- /dev/null
-+++ chromium-107.0.5304.87/sandbox/linux/system_headers/riscv64_linux_syscalls.h
-@@ -0,0 +1,1222 @@
-+// Copyright 2014 The Chromium Authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+#ifndef SANDBOX_LINUX_SYSTEM_HEADERS_RISCV64_LINUX_SYSCALLS_H_
-+#define SANDBOX_LINUX_SYSTEM_HEADERS_RISCV64_LINUX_SYSCALLS_H_
-+
-+#include <asm-generic/unistd.h>
-+
-+#if !defined(__NR_io_setup)
-+#define __NR_io_setup 0
-+#endif
-+
-+#if !defined(__NR_io_destroy)
-+#define __NR_io_destroy 1
-+#endif
-+
-+#if !defined(__NR_io_submit)
-+#define __NR_io_submit 2
-+#endif
-+
-+#if !defined(__NR_io_cancel)
-+#define __NR_io_cancel 3
-+#endif
-+
-+#if !defined(__NR_io_getevents)
-+#define __NR_io_getevents 4
-+#endif
-+
-+#if !defined(__NR_setxattr)
-+#define __NR_setxattr 5
-+#endif
-+
-+#if !defined(__NR_lsetxattr)
-+#define __NR_lsetxattr 6
-+#endif
-+
-+#if !defined(__NR_fsetxattr)
-+#define __NR_fsetxattr 7
-+#endif
-+
-+#if !defined(__NR_getxattr)
-+#define __NR_getxattr 8
-+#endif
-+
-+#if !defined(__NR_lgetxattr)
-+#define __NR_lgetxattr 9
-+#endif
-+
-+#if !defined(__NR_fgetxattr)
-+#define __NR_fgetxattr 10
-+#endif
-+
-+#if !defined(__NR_listxattr)
-+#define __NR_listxattr 11
-+#endif
-+
-+#if !defined(__NR_llistxattr)
-+#define __NR_llistxattr 12
-+#endif
-+
-+#if !defined(__NR_flistxattr)
-+#define __NR_flistxattr 13
-+#endif
-+
-+#if !defined(__NR_removexattr)
-+#define __NR_removexattr 14
-+#endif
-+
-+#if !defined(__NR_lremovexattr)
-+#define __NR_lremovexattr 15
-+#endif
-+
-+#if !defined(__NR_fremovexattr)
-+#define __NR_fremovexattr 16
-+#endif
-+
-+#if !defined(__NR_getcwd)
-+#define __NR_getcwd 17
-+#endif
-+
-+#if !defined(__NR_lookup_dcookie)
-+#define __NR_lookup_dcookie 18
-+#endif
-+
-+#if !defined(__NR_eventfd2)
-+#define __NR_eventfd2 19
-+#endif
-+
-+#if !defined(__NR_epoll_create1)
-+#define __NR_epoll_create1 20
-+#endif
-+
-+#if !defined(__NR_epoll_ctl)
-+#define __NR_epoll_ctl 21
-+#endif
-+
-+#if !defined(__NR_epoll_pwait)
-+#define __NR_epoll_pwait 22
-+#endif
-+
-+#if !defined(__NR_dup)
-+#define __NR_dup 23
-+#endif
-+
-+#if !defined(__NR_dup3)
-+#define __NR_dup3 24
-+#endif
-+
-+#if !defined(__NR_fcntl)
-+#define __NR_fcntl 25
-+#endif
-+
-+#if !defined(__NR_inotify_init1)
-+#define __NR_inotify_init1 26
-+#endif
-+
-+#if !defined(__NR_inotify_add_watch)
-+#define __NR_inotify_add_watch 27
-+#endif
-+
-+#if !defined(__NR_inotify_rm_watch)
-+#define __NR_inotify_rm_watch 28
-+#endif
-+
-+#if !defined(__NR_ioctl)
-+#define __NR_ioctl 29
-+#endif
-+
-+#if !defined(__NR_ioprio_set)
-+#define __NR_ioprio_set 30
-+#endif
-+
-+#if !defined(__NR_ioprio_get)
-+#define __NR_ioprio_get 31
-+#endif
-+
-+#if !defined(__NR_flock)
-+#define __NR_flock 32
-+#endif
-+
-+#if !defined(__NR_mknodat)
-+#define __NR_mknodat 33
-+#endif
-+
-+#if !defined(__NR_mkdirat)
-+#define __NR_mkdirat 34
-+#endif
-+
-+#if !defined(__NR_unlinkat)
-+#define __NR_unlinkat 35
-+#endif
-+
-+#if !defined(__NR_symlinkat)
-+#define __NR_symlinkat 36
-+#endif
-+
-+#if !defined(__NR_linkat)
-+#define __NR_linkat 37
-+#endif
-+
-+#if !defined(__NR_renameat)
-+#define __NR_renameat 38
-+#endif
-+
-+#if !defined(__NR_umount2)
-+#define __NR_umount2 39
-+#endif
-+
-+#if !defined(__NR_mount)
-+#define __NR_mount 40
-+#endif
-+
-+#if !defined(__NR_pivot_root)
-+#define __NR_pivot_root 41
-+#endif
-+
-+#if !defined(__NR_nfsservctl)
-+#define __NR_nfsservctl 42
-+#endif
-+
-+#if !defined(__NR_statfs)
-+#define __NR_statfs 43
-+#endif
-+
-+#if !defined(__NR_fstatfs)
-+#define __NR_fstatfs 44
-+#endif
-+
-+#if !defined(__NR_truncate)
-+#define __NR_truncate 45
-+#endif
-+
-+#if !defined(__NR_ftruncate)
-+#define __NR_ftruncate 46
-+#endif
-+
-+#if !defined(__NR_fallocate)
-+#define __NR_fallocate 47
-+#endif
-+
-+#if !defined(__NR_faccessat)
-+#define __NR_faccessat 48
-+#endif
-+
-+#if !defined(__NR_chdir)
-+#define __NR_chdir 49
-+#endif
-+
-+#if !defined(__NR_fchdir)
-+#define __NR_fchdir 50
-+#endif
-+
-+#if !defined(__NR_chroot)
-+#define __NR_chroot 51
-+#endif
-+
-+#if !defined(__NR_fchmod)
-+#define __NR_fchmod 52
-+#endif
-+
-+#if !defined(__NR_fchmodat)
-+#define __NR_fchmodat 53
-+#endif
-+
-+#if !defined(__NR_fchownat)
-+#define __NR_fchownat 54
-+#endif
-+
-+#if !defined(__NR_fchown)
-+#define __NR_fchown 55
-+#endif
-+
-+#if !defined(__NR_openat)
-+#define __NR_openat 56
-+#endif
-+
-+#if !defined(__NR_close)
-+#define __NR_close 57
-+#endif
-+
-+#if !defined(__NR_vhangup)
-+#define __NR_vhangup 58
-+#endif
-+
-+#if !defined(__NR_pipe2)
-+#define __NR_pipe2 59
-+#endif
-+
-+#if !defined(__NR_quotactl)
-+#define __NR_quotactl 60
-+#endif
-+
-+#if !defined(__NR_getdents64)
-+#define __NR_getdents64 61
-+#endif
-+
-+#if !defined(__NR_lseek)
-+#define __NR_lseek 62
-+#endif
-+
-+#if !defined(__NR_read)
-+#define __NR_read 63
-+#endif
-+
-+#if !defined(__NR_write)
-+#define __NR_write 64
-+#endif
-+
-+#if !defined(__NR_readv)
-+#define __NR_readv 65
-+#endif
-+
-+#if !defined(__NR_writev)
-+#define __NR_writev 66
-+#endif
-+
-+#if !defined(__NR_pread64)
-+#define __NR_pread64 67
-+#endif
-+
-+#if !defined(__NR_pwrite64)
-+#define __NR_pwrite64 68
-+#endif
-+
-+#if !defined(__NR_preadv)
-+#define __NR_preadv 69
-+#endif
-+
-+#if !defined(__NR_pwritev)
-+#define __NR_pwritev 70
-+#endif
-+
-+#if !defined(__NR_sendfile)
-+#define __NR_sendfile 71
-+#endif
-+
-+#if !defined(__NR_pselect6)
-+#define __NR_pselect6 72
-+#endif
-+
-+#if !defined(__NR_ppoll)
-+#define __NR_ppoll 73
-+#endif
-+
-+#if !defined(__NR_signalfd4)
-+#define __NR_signalfd4 74
-+#endif
-+
-+#if !defined(__NR_vmsplice)
-+#define __NR_vmsplice 75
-+#endif
-+
-+#if !defined(__NR_splice)
-+#define __NR_splice 76
-+#endif
-+
-+#if !defined(__NR_tee)
-+#define __NR_tee 77
-+#endif
-+
-+#if !defined(__NR_readlinkat)
-+#define __NR_readlinkat 78
-+#endif
-+
-+#if !defined(__NR_newfstatat)
-+#define __NR_newfstatat 79
-+#endif
-+
-+#if !defined(__NR_fstat)
-+#define __NR_fstat 80
-+#endif
-+
-+#if !defined(__NR_sync)
-+#define __NR_sync 81
-+#endif
-+
-+#if !defined(__NR_fsync)
-+#define __NR_fsync 82
-+#endif
-+
-+#if !defined(__NR_fdatasync)
-+#define __NR_fdatasync 83
-+#endif
-+
-+#if !defined(__NR_sync_file_range)
-+#define __NR_sync_file_range 84
-+#endif
-+
-+#if !defined(__NR_timerfd_create)
-+#define __NR_timerfd_create 85
-+#endif
-+
-+#if !defined(__NR_timerfd_settime)
-+#define __NR_timerfd_settime 86
-+#endif
-+
-+#if !defined(__NR_timerfd_gettime)
-+#define __NR_timerfd_gettime 87
-+#endif
-+
-+#if !defined(__NR_utimensat)
-+#define __NR_utimensat 88
-+#endif
-+
-+#if !defined(__NR_acct)
-+#define __NR_acct 89
-+#endif
-+
-+#if !defined(__NR_capget)
-+#define __NR_capget 90
-+#endif
-+
-+#if !defined(__NR_capset)
-+#define __NR_capset 91
-+#endif
-+
-+#if !defined(__NR_personality)
-+#define __NR_personality 92
-+#endif
-+
-+#if !defined(__NR_exit)
-+#define __NR_exit 93
-+#endif
-+
-+#if !defined(__NR_exit_group)
-+#define __NR_exit_group 94
-+#endif
-+
-+#if !defined(__NR_waitid)
-+#define __NR_waitid 95
-+#endif
-+
-+#if !defined(__NR_set_tid_address)
-+#define __NR_set_tid_address 96
-+#endif
-+
-+#if !defined(__NR_unshare)
-+#define __NR_unshare 97
-+#endif
-+
-+#if !defined(__NR_futex)
-+#define __NR_futex 98
-+#endif
-+
-+#if !defined(__NR_set_robust_list)
-+#define __NR_set_robust_list 99
-+#endif
-+
-+#if !defined(__NR_get_robust_list)
-+#define __NR_get_robust_list 100
-+#endif
-+
-+#if !defined(__NR_nanosleep)
-+#define __NR_nanosleep 101
-+#endif
-+
-+#if !defined(__NR_getitimer)
-+#define __NR_getitimer 102
-+#endif
-+
-+#if !defined(__NR_setitimer)
-+#define __NR_setitimer 103
-+#endif
-+
-+#if !defined(__NR_kexec_load)
-+#define __NR_kexec_load 104
-+#endif
-+
-+#if !defined(__NR_init_module)
-+#define __NR_init_module 105
-+#endif
-+
-+#if !defined(__NR_delete_module)
-+#define __NR_delete_module 106
-+#endif
-+
-+#if !defined(__NR_timer_create)
-+#define __NR_timer_create 107
-+#endif
-+
-+#if !defined(__NR_timer_gettime)
-+#define __NR_timer_gettime 108
-+#endif
-+
-+#if !defined(__NR_timer_getoverrun)
-+#define __NR_timer_getoverrun 109
-+#endif
-+
-+#if !defined(__NR_timer_settime)
-+#define __NR_timer_settime 110
-+#endif
-+
-+#if !defined(__NR_timer_delete)
-+#define __NR_timer_delete 111
-+#endif
-+
-+#if !defined(__NR_clock_settime)
-+#define __NR_clock_settime 112
-+#endif
-+
-+#if !defined(__NR_clock_gettime)
-+#define __NR_clock_gettime 113
-+#endif
-+
-+#if !defined(__NR_clock_getres)
-+#define __NR_clock_getres 114
-+#endif
-+
-+#if !defined(__NR_clock_nanosleep)
-+#define __NR_clock_nanosleep 115
-+#endif
-+
-+#if !defined(__NR_syslog)
-+#define __NR_syslog 116
-+#endif
-+
-+#if !defined(__NR_ptrace)
-+#define __NR_ptrace 117
-+#endif
-+
-+#if !defined(__NR_sched_setparam)
-+#define __NR_sched_setparam 118
-+#endif
-+
-+#if !defined(__NR_sched_setscheduler)
-+#define __NR_sched_setscheduler 119
-+#endif
-+
-+#if !defined(__NR_sched_getscheduler)
-+#define __NR_sched_getscheduler 120
-+#endif
-+
-+#if !defined(__NR_sched_getparam)
-+#define __NR_sched_getparam 121
-+#endif
-+
-+#if !defined(__NR_sched_setaffinity)
-+#define __NR_sched_setaffinity 122
-+#endif
-+
-+#if !defined(__NR_sched_getaffinity)
-+#define __NR_sched_getaffinity 123
-+#endif
-+
-+#if !defined(__NR_sched_yield)
-+#define __NR_sched_yield 124
-+#endif
-+
-+#if !defined(__NR_sched_get_priority_max)
-+#define __NR_sched_get_priority_max 125
-+#endif
-+
-+#if !defined(__NR_sched_get_priority_min)
-+#define __NR_sched_get_priority_min 126
-+#endif
-+
-+#if !defined(__NR_sched_rr_get_interval)
-+#define __NR_sched_rr_get_interval 127
-+#endif
-+
-+#if !defined(__NR_restart_syscall)
-+#define __NR_restart_syscall 128
-+#endif
-+
-+#if !defined(__NR_kill)
-+#define __NR_kill 129
-+#endif
-+
-+#if !defined(__NR_tkill)
-+#define __NR_tkill 130
-+#endif
-+
-+#if !defined(__NR_tgkill)
-+#define __NR_tgkill 131
-+#endif
-+
-+#if !defined(__NR_sigaltstack)
-+#define __NR_sigaltstack 132
-+#endif
-+
-+#if !defined(__NR_rt_sigsuspend)
-+#define __NR_rt_sigsuspend 133
-+#endif
-+
-+#if !defined(__NR_rt_sigaction)
-+#define __NR_rt_sigaction 134
-+#endif
-+
-+#if !defined(__NR_rt_sigprocmask)
-+#define __NR_rt_sigprocmask 135
-+#endif
-+
-+#if !defined(__NR_rt_sigpending)
-+#define __NR_rt_sigpending 136
-+#endif
-+
-+#if !defined(__NR_rt_sigtimedwait)
-+#define __NR_rt_sigtimedwait 137
-+#endif
-+
-+#if !defined(__NR_rt_sigqueueinfo)
-+#define __NR_rt_sigqueueinfo 138
-+#endif
-+
-+#if !defined(__NR_rt_sigreturn)
-+#define __NR_rt_sigreturn 139
-+#endif
-+
-+#if !defined(__NR_setpriority)
-+#define __NR_setpriority 140
-+#endif
-+
-+#if !defined(__NR_getpriority)
-+#define __NR_getpriority 141
-+#endif
-+
-+#if !defined(__NR_reboot)
-+#define __NR_reboot 142
-+#endif
-+
-+#if !defined(__NR_setregid)
-+#define __NR_setregid 143
-+#endif
-+
-+#if !defined(__NR_setgid)
-+#define __NR_setgid 144
-+#endif
-+
-+#if !defined(__NR_setreuid)
-+#define __NR_setreuid 145
-+#endif
-+
-+#if !defined(__NR_setuid)
-+#define __NR_setuid 146
-+#endif
-+
-+#if !defined(__NR_setresuid)
-+#define __NR_setresuid 147
-+#endif
-+
-+#if !defined(__NR_getresuid)
-+#define __NR_getresuid 148
-+#endif
-+
-+#if !defined(__NR_setresgid)
-+#define __NR_setresgid 149
-+#endif
-+
-+#if !defined(__NR_getresgid)
-+#define __NR_getresgid 150
-+#endif
-+
-+#if !defined(__NR_setfsuid)
-+#define __NR_setfsuid 151
-+#endif
-+
-+#if !defined(__NR_setfsgid)
-+#define __NR_setfsgid 152
-+#endif
-+
-+#if !defined(__NR_times)
-+#define __NR_times 153
-+#endif
-+
-+#if !defined(__NR_setpgid)
-+#define __NR_setpgid 154
-+#endif
-+
-+#if !defined(__NR_getpgid)
-+#define __NR_getpgid 155
-+#endif
-+
-+#if !defined(__NR_getsid)
-+#define __NR_getsid 156
-+#endif
-+
-+#if !defined(__NR_setsid)
-+#define __NR_setsid 157
-+#endif
-+
-+#if !defined(__NR_getgroups)
-+#define __NR_getgroups 158
-+#endif
-+
-+#if !defined(__NR_setgroups)
-+#define __NR_setgroups 159
-+#endif
-+
-+#if !defined(__NR_uname)
-+#define __NR_uname 160
-+#endif
-+
-+#if !defined(__NR_sethostname)
-+#define __NR_sethostname 161
-+#endif
-+
-+#if !defined(__NR_setdomainname)
-+#define __NR_setdomainname 162
-+#endif
-+
-+#if !defined(__NR_getrlimit)
-+#define __NR_getrlimit 163
-+#endif
-+
-+#if !defined(__NR_setrlimit)
-+#define __NR_setrlimit 164
-+#endif
-+
-+#if !defined(__NR_getrusage)
-+#define __NR_getrusage 165
-+#endif
-+
-+#if !defined(__NR_umask)
-+#define __NR_umask 166
-+#endif
-+
-+#if !defined(__NR_prctl)
-+#define __NR_prctl 167
-+#endif
-+
-+#if !defined(__NR_getcpu)
-+#define __NR_getcpu 168
-+#endif
-+
-+#if !defined(__NR_gettimeofday)
-+#define __NR_gettimeofday 169
-+#endif
-+
-+#if !defined(__NR_settimeofday)
-+#define __NR_settimeofday 170
-+#endif
-+
-+#if !defined(__NR_adjtimex)
-+#define __NR_adjtimex 171
-+#endif
-+
-+#if !defined(__NR_getpid)
-+#define __NR_getpid 172
-+#endif
-+
-+#if !defined(__NR_getppid)
-+#define __NR_getppid 173
-+#endif
-+
-+#if !defined(__NR_getuid)
-+#define __NR_getuid 174
-+#endif
-+
-+#if !defined(__NR_geteuid)
-+#define __NR_geteuid 175
-+#endif
-+
-+#if !defined(__NR_getgid)
-+#define __NR_getgid 176
-+#endif
-+
-+#if !defined(__NR_getegid)
-+#define __NR_getegid 177
-+#endif
-+
-+#if !defined(__NR_gettid)
-+#define __NR_gettid 178
-+#endif
-+
-+#if !defined(__NR_sysinfo)
-+#define __NR_sysinfo 179
-+#endif
-+
-+#if !defined(__NR_mq_open)
-+#define __NR_mq_open 180
-+#endif
-+
-+#if !defined(__NR_mq_unlink)
-+#define __NR_mq_unlink 181
-+#endif
-+
-+#if !defined(__NR_mq_timedsend)
-+#define __NR_mq_timedsend 182
-+#endif
-+
-+#if !defined(__NR_mq_timedreceive)
-+#define __NR_mq_timedreceive 183
-+#endif
-+
-+#if !defined(__NR_mq_notify)
-+#define __NR_mq_notify 184
-+#endif
-+
-+#if !defined(__NR_mq_getsetattr)
-+#define __NR_mq_getsetattr 185
-+#endif
-+
-+#if !defined(__NR_msgget)
-+#define __NR_msgget 186
-+#endif
-+
-+#if !defined(__NR_msgctl)
-+#define __NR_msgctl 187
-+#endif
-+
-+#if !defined(__NR_msgrcv)
-+#define __NR_msgrcv 188
-+#endif
-+
-+#if !defined(__NR_msgsnd)
-+#define __NR_msgsnd 189
-+#endif
-+
-+#if !defined(__NR_semget)
-+#define __NR_semget 190
-+#endif
-+
-+#if !defined(__NR_semctl)
-+#define __NR_semctl 191
-+#endif
-+
-+#if !defined(__NR_semtimedop)
-+#define __NR_semtimedop 192
-+#endif
-+
-+#if !defined(__NR_semop)
-+#define __NR_semop 193
-+#endif
-+
-+#if !defined(__NR_shmget)
-+#define __NR_shmget 194
-+#endif
-+
-+#if !defined(__NR_shmctl)
-+#define __NR_shmctl 195
-+#endif
-+
-+#if !defined(__NR_shmat)
-+#define __NR_shmat 196
-+#endif
-+
-+#if !defined(__NR_shmdt)
-+#define __NR_shmdt 197
-+#endif
-+
-+#if !defined(__NR_socket)
-+#define __NR_socket 198
-+#endif
-+
-+#if !defined(__NR_socketpair)
-+#define __NR_socketpair 199
-+#endif
-+
-+#if !defined(__NR_bind)
-+#define __NR_bind 200
-+#endif
-+
-+#if !defined(__NR_listen)
-+#define __NR_listen 201
-+#endif
-+
-+#if !defined(__NR_accept)
-+#define __NR_accept 202
-+#endif
-+
-+#if !defined(__NR_connect)
-+#define __NR_connect 203
-+#endif
-+
-+#if !defined(__NR_getsockname)
-+#define __NR_getsockname 204
-+#endif
-+
-+#if !defined(__NR_getpeername)
-+#define __NR_getpeername 205
-+#endif
-+
-+#if !defined(__NR_sendto)
-+#define __NR_sendto 206
-+#endif
-+
-+#if !defined(__NR_recvfrom)
-+#define __NR_recvfrom 207
-+#endif
-+
-+#if !defined(__NR_setsockopt)
-+#define __NR_setsockopt 208
-+#endif
-+
-+#if !defined(__NR_getsockopt)
-+#define __NR_getsockopt 209
-+#endif
-+
-+#if !defined(__NR_shutdown)
-+#define __NR_shutdown 210
-+#endif
-+
-+#if !defined(__NR_sendmsg)
-+#define __NR_sendmsg 211
-+#endif
-+
-+#if !defined(__NR_recvmsg)
-+#define __NR_recvmsg 212
-+#endif
-+
-+#if !defined(__NR_readahead)
-+#define __NR_readahead 213
-+#endif
-+
-+#if !defined(__NR_brk)
-+#define __NR_brk 214
-+#endif
-+
-+#if !defined(__NR_munmap)
-+#define __NR_munmap 215
-+#endif
-+
-+#if !defined(__NR_mremap)
-+#define __NR_mremap 216
-+#endif
-+
-+#if !defined(__NR_add_key)
-+#define __NR_add_key 217
-+#endif
-+
-+#if !defined(__NR_request_key)
-+#define __NR_request_key 218
-+#endif
-+
-+#if !defined(__NR_keyctl)
-+#define __NR_keyctl 219
-+#endif
-+
-+#if !defined(__NR_clone)
-+#define __NR_clone 220
-+#endif
-+
-+#if !defined(__NR_execve)
-+#define __NR_execve 221
-+#endif
-+
-+#if !defined(__NR_mmap)
-+#define __NR_mmap 222
-+#endif
-+
-+#if !defined(__NR_fadvise64)
-+#define __NR_fadvise64 223
-+#endif
-+
-+#if !defined(__NR_swapon)
-+#define __NR_swapon 224
-+#endif
-+
-+#if !defined(__NR_swapoff)
-+#define __NR_swapoff 225
-+#endif
-+
-+#if !defined(__NR_mprotect)
-+#define __NR_mprotect 226
-+#endif
-+
-+#if !defined(__NR_msync)
-+#define __NR_msync 227
-+#endif
-+
-+#if !defined(__NR_mlock)
-+#define __NR_mlock 228
-+#endif
-+
-+#if !defined(__NR_munlock)
-+#define __NR_munlock 229
-+#endif
-+
-+#if !defined(__NR_mlockall)
-+#define __NR_mlockall 230
-+#endif
-+
-+#if !defined(__NR_munlockall)
-+#define __NR_munlockall 231
-+#endif
-+
-+#if !defined(__NR_mincore)
-+#define __NR_mincore 232
-+#endif
-+
-+#if !defined(__NR_madvise)
-+#define __NR_madvise 233
-+#endif
-+
-+#if !defined(__NR_remap_file_pages)
-+#define __NR_remap_file_pages 234
-+#endif
-+
-+#if !defined(__NR_mbind)
-+#define __NR_mbind 235
-+#endif
-+
-+#if !defined(__NR_get_mempolicy)
-+#define __NR_get_mempolicy 236
-+#endif
-+
-+#if !defined(__NR_set_mempolicy)
-+#define __NR_set_mempolicy 237
-+#endif
-+
-+#if !defined(__NR_migrate_pages)
-+#define __NR_migrate_pages 238
-+#endif
-+
-+#if !defined(__NR_move_pages)
-+#define __NR_move_pages 239
-+#endif
-+
-+#if !defined(__NR_rt_tgsigqueueinfo)
-+#define __NR_rt_tgsigqueueinfo 240
-+#endif
-+
-+#if !defined(__NR_perf_event_open)
-+#define __NR_perf_event_open 241
-+#endif
-+
-+#if !defined(__NR_accept4)
-+#define __NR_accept4 242
-+#endif
-+
-+#if !defined(__NR_recvmmsg)
-+#define __NR_recvmmsg 243
-+#endif
-+
-+#if !defined(__NR_riscv_flush_icache)
-+#define __NR_riscv_flush_icache 259
-+#endif
-+
-+#if !defined(__NR_wait4)
-+#define __NR_wait4 260
-+#endif
-+
-+#if !defined(__NR_prlimit64)
-+#define __NR_prlimit64 261
-+#endif
-+
-+#if !defined(__NR_fanotify_init)
-+#define __NR_fanotify_init 262
-+#endif
-+
-+#if !defined(__NR_fanotify_mark)
-+#define __NR_fanotify_mark 263
-+#endif
-+
-+#if !defined(__NR_name_to_handle_at)
-+#define __NR_name_to_handle_at 264
-+#endif
-+
-+#if !defined(__NR_open_by_handle_at)
-+#define __NR_open_by_handle_at 265
-+#endif
-+
-+#if !defined(__NR_clock_adjtime)
-+#define __NR_clock_adjtime 266
-+#endif
-+
-+#if !defined(__NR_syncfs)
-+#define __NR_syncfs 267
-+#endif
-+
-+#if !defined(__NR_setns)
-+#define __NR_setns 268
-+#endif
-+
-+#if !defined(__NR_sendmmsg)
-+#define __NR_sendmmsg 269
-+#endif
-+
-+#if !defined(__NR_process_vm_readv)
-+#define __NR_process_vm_readv 270
-+#endif
-+
-+#if !defined(__NR_process_vm_writev)
-+#define __NR_process_vm_writev 271
-+#endif
-+
-+#if !defined(__NR_kcmp)
-+#define __NR_kcmp 272
-+#endif
-+
-+#if !defined(__NR_finit_module)
-+#define __NR_finit_module 273
-+#endif
-+
-+#if !defined(__NR_sched_setattr)
-+#define __NR_sched_setattr 274
-+#endif
-+
-+#if !defined(__NR_sched_getattr)
-+#define __NR_sched_getattr 275
-+#endif
-+
-+#if !defined(__NR_renameat2)
-+#define __NR_renameat2 276
-+#endif
-+
-+#if !defined(__NR_seccomp)
-+#define __NR_seccomp 277
-+#endif
-+
-+#if !defined(__NR_getrandom)
-+#define __NR_getrandom 278
-+#endif
-+
-+#if !defined(__NR_memfd_create)
-+#define __NR_memfd_create 279
-+#endif
-+
-+#if !defined(__NR_bpf)
-+#define __NR_bpf 280
-+#endif
-+
-+#if !defined(__NR_execveat)
-+#define __NR_execveat 281
-+#endif
-+
-+#if !defined(__NR_userfaultfd)
-+#define __NR_userfaultfd 282
-+#endif
-+
-+#if !defined(__NR_membarrier)
-+#define __NR_membarrier 283
-+#endif
-+
-+#if !defined(__NR_mlock2)
-+#define __NR_mlock2 284
-+#endif
-+
-+#if !defined(__NR_copy_file_range)
-+#define __NR_copy_file_range 285
-+#endif
-+
-+#if !defined(__NR_preadv2)
-+#define __NR_preadv2 286
-+#endif
-+
-+#if !defined(__NR_pwritev2)
-+#define __NR_pwritev2 287
-+#endif
-+
-+#if !defined(__NR_pkey_mprotect)
-+#define __NR_pkey_mprotect 288
-+#endif
-+
-+#if !defined(__NR_pkey_alloc)
-+#define __NR_pkey_alloc 289
-+#endif
-+
-+#if !defined(__NR_pkey_free)
-+#define __NR_pkey_free 290
-+#endif
-+
-+#if !defined(__NR_statx)
-+#define __NR_statx 291
-+#endif
-+
-+#if !defined(__NR_io_pgetevents)
-+#define __NR_io_pgetevents 292
-+#endif
-+
-+#if !defined(__NR_rseq)
-+#define __NR_rseq 293
-+#endif
-+
-+#if !defined(__NR_kexec_file_load)
-+#define __NR_kexec_file_load 294
-+#endif
-+
-+#if !defined(__NR_pidfd_send_signal)
-+#define __NR_pidfd_send_signal 424
-+#endif
-+
-+#if !defined(__NR_io_uring_setup)
-+#define __NR_io_uring_setup 425
-+#endif
-+
-+#if !defined(__NR_io_uring_enter)
-+#define __NR_io_uring_enter 426
-+#endif
-+
-+#if !defined(__NR_io_uring_register)
-+#define __NR_io_uring_register 427
-+#endif
-+
-+#if !defined(__NR_open_tree)
-+#define __NR_open_tree 428
-+#endif
-+
-+#if !defined(__NR_move_mount)
-+#define __NR_move_mount 429
-+#endif
-+
-+#if !defined(__NR_fsopen)
-+#define __NR_fsopen 430
-+#endif
-+
-+#if !defined(__NR_fsconfig)
-+#define __NR_fsconfig 431
-+#endif
-+
-+#if !defined(__NR_fsmount)
-+#define __NR_fsmount 432
-+#endif
-+
-+#if !defined(__NR_fspick)
-+#define __NR_fspick 433
-+#endif
-+
-+#if !defined(__NR_pidfd_open)
-+#define __NR_pidfd_open 434
-+#endif
-+
-+#if !defined(__NR_clone3)
-+#define __NR_clone3 435
-+#endif
-+
-+#if !defined(__NR_close_range)
-+#define __NR_close_range 436
-+#endif
-+
-+#if !defined(__NR_openat2)
-+#define __NR_openat2 437
-+#endif
-+
-+#if !defined(__NR_pidfd_getfd)
-+#define __NR_pidfd_getfd 438
-+#endif
-+
-+#if !defined(__NR_faccessat2)
-+#define __NR_faccessat2 439
-+#endif
-+
-+#if !defined(__NR_process_madvise)
-+#define __NR_process_madvise 440
-+#endif
-+
-+#if !defined(__NR_epoll_pwait2)
-+#define __NR_epoll_pwait2 441
-+#endif
-+
-+#if !defined(__NR_mount_setattr)
-+#define __NR_mount_setattr 442
-+#endif
-+
-+#if !defined(__NR_quotactl_path)
-+#define __NR_quotactl_path 443
-+#endif
-+
-+#if !defined(__NR_landlock_create_ruleset)
-+#define __NR_landlock_create_ruleset 444
-+#endif
-+
-+#if !defined(__NR_landlock_add_rule)
-+#define __NR_landlock_add_rule 445
-+#endif
-+
-+#if !defined(__NR_landlock_restrict_self)
-+#define __NR_landlock_restrict_self 446
-+#endif
-+
-+#endif  // SANDBOX_LINUX_SYSTEM_HEADERS_RISCV64_LINUX_SYSCALLS_H_
-Index: chromium-107.0.5304.87/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc
-+++ chromium-107.0.5304.87/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc
-@@ -38,7 +38,7 @@ ResultExpr CrosAmdGpuProcessPolicy::Eval
-     case __NR_sched_setscheduler:
-     case __NR_sysinfo:
-     case __NR_uname:
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_readlink:
-     case __NR_stat:
- #endif
-Index: chromium-107.0.5304.87/sandbox/policy/linux/bpf_gpu_policy_linux.cc
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/policy/linux/bpf_gpu_policy_linux.cc
-+++ chromium-107.0.5304.87/sandbox/policy/linux/bpf_gpu_policy_linux.cc
-@@ -73,7 +73,7 @@ ResultExpr GpuProcessPolicy::EvaluateSys
-     (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
-     case __NR_ftruncate64:
- #endif
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_getdents:
- #endif
-     case __NR_getdents64:
-
diff --git a/srcpkgs/qt6-pdf/patches/0007-riscv-sandbox.patch.args b/srcpkgs/qt6-pdf/patches/0007-riscv-sandbox.patch.args
deleted file mode 100644
index d5f38e354e7f00..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0007-riscv-sandbox.patch.args
+++ /dev/null
@@ -1 +0,0 @@
--Np1 --directory=src/3rdparty/chromium/
diff --git a/srcpkgs/qt6-pdf/patches/0008-rsicv-allocator.patch b/srcpkgs/qt6-pdf/patches/0008-rsicv-allocator.patch
deleted file mode 100644
index 98b009f6615790..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0008-rsicv-allocator.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc.gni	2023-10-03 21:49:54.000000000 +0200
-+++ -	2023-10-27 19:05:06.146398062 +0200
-@@ -14,7 +14,7 @@
- if (is_nacl) {
-   # NaCl targets don't use 64-bit pointers.
-   has_64_bit_pointers = false
--} else if (current_cpu == "x64" || current_cpu == "arm64") {
-+} else if (current_cpu == "x64" || current_cpu == "arm64" || current_cpu == "riscv64") {
-   has_64_bit_pointers = true
- } else if (current_cpu == "x86" || current_cpu == "arm") {
-   has_64_bit_pointers = false
diff --git a/srcpkgs/qt6-pdf/patches/0100-REVERT-roll-src-third_party-ffmpeg-m102.patch b/srcpkgs/qt6-pdf/patches/0100-REVERT-roll-src-third_party-ffmpeg-m102.patch
new file mode 100644
index 00000000000000..aaaa3018c57f3b
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0100-REVERT-roll-src-third_party-ffmpeg-m102.patch
@@ -0,0 +1,52 @@
+--- a/src/3rdparty/chromium/media/filters/audio_file_reader_unittest.cc
++++ b/src/3rdparty/chromium/media/filters/audio_file_reader_unittest.cc
+@@ -121,11 +121,11 @@ class AudioFileReaderTest : public testi
+     EXPECT_FALSE(reader_->Open());
+   }
+ 
+-  void RunTestFailingDecode(const char* fn, int expect_read = 0) {
++  void RunTestFailingDecode(const char* fn) {
+     Initialize(fn);
+     EXPECT_TRUE(reader_->Open());
+     std::vector<std::unique_ptr<AudioBus>> decoded_audio_packets;
+-    EXPECT_EQ(reader_->Read(&decoded_audio_packets), expect_read);
++    EXPECT_EQ(reader_->Read(&decoded_audio_packets), 0);
+   }
+ 
+   void RunTestPartialDecode(const char* fn) {
+@@ -219,7 +219,7 @@ TEST_F(AudioFileReaderTest, AAC_ADTS) {
+ }
+ 
+ TEST_F(AudioFileReaderTest, MidStreamConfigChangesFail) {
+-  RunTestFailingDecode("midstream_config_change.mp3", 42624);
++  RunTestFailingDecode("midstream_config_change.mp3");
+ }
+ #endif
+ 
+--- a/src/3rdparty/chromium/media/filters/audio_video_metadata_extractor.cc
++++ b/src/3rdparty/chromium/media/filters/audio_video_metadata_extractor.cc
+@@ -113,15 +113,6 @@ bool AudioVideoMetadataExtractor::Extrac
+     if (!stream)
+       continue;
+ 
+-    void* display_matrix =
+-        av_stream_get_side_data(stream, AV_PKT_DATA_DISPLAYMATRIX, nullptr);
+-    if (display_matrix) {
+-      rotation_ = VideoTransformation::FromFFmpegDisplayMatrix(
+-                      static_cast<int32_t*>(display_matrix))
+-                      .rotation;
+-      info.tags["rotate"] = base::NumberToString(rotation_);
+-    }
+-
+     // Extract dictionary from streams also. Needed for containers that attach
+     // metadata to contained streams instead the container itself, like OGG.
+     ExtractDictionary(stream->metadata, &info.tags);
+@@ -264,6 +255,8 @@ void AudioVideoMetadataExtractor::Extrac
+     if (raw_tags->find(tag->key) == raw_tags->end())
+       (*raw_tags)[tag->key] = tag->value;
+ 
++    if (ExtractInt(tag, "rotate", &rotation_))
++      continue;
+     if (ExtractString(tag, "album", &album_))
+       continue;
+     if (ExtractString(tag, "artist", &artist_))
diff --git a/srcpkgs/qt6-pdf/patches/0104-angle-wayland-include.patch b/srcpkgs/qt6-pdf/patches/0104-angle-wayland-include.patch
new file mode 100644
index 00000000000000..bdae89e41d392a
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0104-angle-wayland-include.patch
@@ -0,0 +1,37 @@
+Patch-Source: https://github.com/archlinux/svntogit-packages/blob/a353833a5a731abfaa465b658f61894a516aa49b/trunk/angle-wayland-include-protocol.patch
+--- a/src/3rdparty/chromium/third_party/angle/BUILD.gn
++++ b/src/3rdparty/chromium/third_party/angle/BUILD.gn
+@@ -588,6 +588,12 @@ config("angle_vulkan_wayland_config") {
+   if (angle_enable_vulkan && angle_use_wayland &&
+       defined(vulkan_wayland_include_dirs)) {
+     include_dirs = vulkan_wayland_include_dirs
++  } else if (angle_enable_vulkan && angle_use_wayland) {
++    include_dirs = [
++      "$wayland_gn_dir/src/src",
++      "$wayland_gn_dir/include/src",
++      "$wayland_gn_dir/include/protocol",
++    ]
+   }
+ }
+ 
+@@ -1176,6 +1182,7 @@ if (angle_use_wayland) {
+     include_dirs = [
+       "$wayland_dir/egl",
+       "$wayland_dir/src",
++      "$wayland_gn_dir/include/protocol",
+     ]
+   }
+ 
+--- a/src/3rdparty/chromium/third_party/angle/src/third_party/volk/BUILD.gn
++++ b/src/3rdparty/chromium/third_party/angle/src/third_party/volk/BUILD.gn
+@@ -21,6 +21,9 @@ source_set("volk") {
+   configs += [ "$angle_root:angle_no_cfi_icall" ]
+   public_deps = [ "$angle_vulkan_headers_dir:vulkan_headers" ]
+   if (angle_use_wayland) {
+-    include_dirs = [ "$wayland_dir/src" ]
++    include_dirs = [
++      "$wayland_dir/src",
++      "$wayland_gn_dir/include/protocol",
++    ]
+   }
+ }
diff --git a/srcpkgs/qt6-pdf/patches/0106-chromium-105.0.5195.52-python-six-1.16.0.patch b/srcpkgs/qt6-pdf/patches/0106-chromium-105.0.5195.52-python-six-1.16.0.patch
new file mode 100644
index 00000000000000..cfa7e05adc9481
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0106-chromium-105.0.5195.52-python-six-1.16.0.patch
@@ -0,0 +1,84 @@
+--- a/src/3rdparty/chromium/third_party/six/src/six.py
++++ b/src/3rdparty/chromium/third_party/six/src/six.py
+@@ -29,7 +29,7 @@ import sys
+ import types
+ 
+ __author__ = "Benjamin Peterson <benjamin@python.org>"
+-__version__ = "1.14.0"
++__version__ = "1.16.0"
+ 
+ 
+ # Useful for very coarse version differentiation.
+@@ -71,6 +71,11 @@ else:
+             MAXSIZE = int((1 << 63) - 1)
+         del X
+ 
++if PY34:
++    from importlib.util import spec_from_loader
++else:
++    spec_from_loader = None
++
+ 
+ def _add_doc(func, doc):
+     """Add documentation to a function."""
+@@ -186,6 +191,11 @@ class _SixMetaPathImporter(object):
+             return self
+         return None
+ 
++    def find_spec(self, fullname, path, target=None):
++        if fullname in self.known_modules:
++            return spec_from_loader(fullname, self)
++        return None
++
+     def __get_module(self, fullname):
+         try:
+             return self.known_modules[fullname]
+@@ -223,6 +233,12 @@ class _SixMetaPathImporter(object):
+         return None
+     get_source = get_code  # same as get_code
+ 
++    def create_module(self, spec):
++        return self.load_module(spec.name)
++
++    def exec_module(self, module):
++        pass
++
+ _importer = _SixMetaPathImporter(__name__)
+ 
+ 
+@@ -890,12 +906,11 @@ def ensure_binary(s, encoding='utf-8', e
+       - `str` -> encoded to `bytes`
+       - `bytes` -> `bytes`
+     """
++    if isinstance(s, binary_type):
++        return s
+     if isinstance(s, text_type):
+         return s.encode(encoding, errors)
+-    elif isinstance(s, binary_type):
+-        return s
+-    else:
+-        raise TypeError("not expecting type '%s'" % type(s))
++    raise TypeError("not expecting type '%s'" % type(s))
+ 
+ 
+ def ensure_str(s, encoding='utf-8', errors='strict'):
+@@ -909,12 +924,15 @@ def ensure_str(s, encoding='utf-8', erro
+       - `str` -> `str`
+       - `bytes` -> decoded to `str`
+     """
+-    if not isinstance(s, (text_type, binary_type)):
+-        raise TypeError("not expecting type '%s'" % type(s))
++    # Optimization: Fast return for the common case.
++    if type(s) is str:
++        return s
+     if PY2 and isinstance(s, text_type):
+-        s = s.encode(encoding, errors)
++        return s.encode(encoding, errors)
+     elif PY3 and isinstance(s, binary_type):
+-        s = s.decode(encoding, errors)
++        return s.decode(encoding, errors)
++    elif not isinstance(s, (text_type, binary_type)):
++        raise TypeError("not expecting type '%s'" % type(s))
+     return s
+ 
+ 
diff --git a/srcpkgs/qt6-pdf/patches/0106-chromium-system-nodejs.patch b/srcpkgs/qt6-pdf/patches/0106-chromium-system-nodejs.patch
deleted file mode 100644
index 1648f764ea19fe..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0106-chromium-system-nodejs.patch
+++ /dev/null
@@ -1,29 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/node/node.py
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/node/node.py
-@@ -18,25 +18,7 @@ def which(cmd):
-     return None
- 
- def GetBinaryPath():
--  if sys.platform == 'win32':
--    nodejs = which('node.exe')
--    if nodejs:
--      return nodejs
--  else:
--    nodejs = which('nodejs')
--    if nodejs:
--      return nodejs
--    nodejs = which('node')
--    if nodejs:
--      return nodejs
--
--  darwin_name = ('node-darwin-arm64' if platform.machine() == 'arm64' else
--                 'node-darwin-x64')
--  return os_path.join(os_path.dirname(__file__), *{
--    'Darwin': ('mac', darwin_name, 'bin', 'node'),
--    'Linux': ('linux', 'node-linux-x64', 'bin', 'node'),
--    'Windows': ('win', 'node.exe'),
--  }[platform.system()])
-+  return "/usr/bin/node"
- 
- 
- def RunNode(cmd_parts, stdout=None):
diff --git a/srcpkgs/qt6-pdf/patches/0107-chromium-114-maldoca-include.patch b/srcpkgs/qt6-pdf/patches/0107-chromium-114-maldoca-include.patch
new file mode 100644
index 00000000000000..ae92efb49712cf
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0107-chromium-114-maldoca-include.patch
@@ -0,0 +1,20 @@
+From 345c58f1d85286b394c05bb8d871ac8173be90a3 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Fri, 31 Mar 2023 16:26:06 +0000
+Subject: [PATCH] IWYU: add stdint.h for int types in maldoca
+
+---
+ third_party/maldoca/src/maldoca/ole/header.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/src/3rdparty/chromium/third_party/maldoca/src/maldoca/ole/header.h
++++ b/src/3rdparty/chromium/third_party/maldoca/src/maldoca/ole/header.h
+@@ -43,6 +43,8 @@
+ #ifndef MALDOCA_OLE_HEADER_H_
+ #define MALDOCA_OLE_HEADER_H_
+ 
++#include <stdint.h>
++
+ #include "absl/strings/string_view.h"
+ 
+ namespace maldoca {
diff --git a/srcpkgs/qt6-pdf/patches/0108-chromium-115-compiler-SkColor4f.patch b/srcpkgs/qt6-pdf/patches/0108-chromium-115-compiler-SkColor4f.patch
new file mode 100644
index 00000000000000..32e3dfbfcb396b
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0108-chromium-115-compiler-SkColor4f.patch
@@ -0,0 +1,26 @@
+Patch-Source: https://src.fedoraproject.org/rpms/chromium/blob/1f8fd846d2cc72c90c73c9867619f0da43b9c816/f/chromium-115-compiler-SkColor4f.patch
+--- a/src/3rdparty/chromium/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc
++++ b/src/3rdparty/chromium/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc
+@@ -76,6 +76,7 @@ bool ParseCanvasColorString(const String
+ 
+ void CanvasStyle::ApplyToFlags(cc::PaintFlags& flags,
+                                float global_alpha) const {
++  SkColor4f custom_color = SkColor4f{0.0f, 0.0f, 0.0f, global_alpha};
+   switch (type_) {
+     case kColor:
+       ApplyColorToFlags(flags, global_alpha);
+@@ -83,12 +84,12 @@ void CanvasStyle::ApplyToFlags(cc::Paint
+     case kGradient:
+       GetCanvasGradient()->GetGradient()->ApplyToFlags(flags, SkMatrix::I(),
+                                                        ImageDrawOptions());
+-      flags.setColor(SkColor4f{0.0f, 0.0f, 0.0f, global_alpha});
++      flags.setColor(custom_color);
+       break;
+     case kImagePattern:
+       GetCanvasPattern()->GetPattern()->ApplyToFlags(
+           flags, AffineTransformToSkMatrix(GetCanvasPattern()->GetTransform()));
+-      flags.setColor(SkColor4f{0.0f, 0.0f, 0.0f, global_alpha});
++      flags.setColor(custom_color);
+       break;
+     default:
+       NOTREACHED();
diff --git a/srcpkgs/qt6-pdf/patches/0108-chromium-cursed^Uscoped_file.patch b/srcpkgs/qt6-pdf/patches/0108-chromium-cursed^Uscoped_file.patch
deleted file mode 100644
index dd31da9790adce..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0108-chromium-cursed^Uscoped_file.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/files/scoped_file_linux.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/files/scoped_file_linux.cc
-@@ -77,15 +77,3 @@ bool IsFDOwned(int fd) {
- }
- 
- }  // namespace base
--
--extern "C" {
--
--int __close(int);
--
--__attribute__((visibility("default"), noinline)) int close(int fd) {
--  if (base::IsFDOwned(fd) && g_is_ownership_enforced)
--    CrashOnFdOwnershipViolation();
--  return __close(fd);
--}
--
--}  // extern "C"
diff --git a/srcpkgs/qt6-pdf/patches/0110-chromium-117-typename.patch b/srcpkgs/qt6-pdf/patches/0110-chromium-117-typename.patch
new file mode 100644
index 00000000000000..6e4af0c0e074fa
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0110-chromium-117-typename.patch
@@ -0,0 +1,91 @@
+--- a/src/3rdparty/chromium/components/optimization_guide/core/tflite_model_executor.h
++++ b/src/3rdparty/chromium/components/optimization_guide/core/tflite_model_executor.h
+@@ -240,7 +240,7 @@ class TFLiteModelExecutor : public Model
+   void SendForBatchExecution(
+       BatchExecutionCallback callback_on_complete,
+       base::TimeTicks start_time,
+-      ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
++      typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
+       override {
+     DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+@@ -262,7 +262,7 @@ class TFLiteModelExecutor : public Model
+   // Starts the synchronous execution of the model. Returns model outputs.
+   // Model needs to be loaded. Synchronous calls do not load or unload model.
+   std::vector<absl::optional<OutputType>> SendForBatchExecutionSync(
+-      ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
++      typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
+       override {
+     DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+@@ -417,7 +417,7 @@ class TFLiteModelExecutor : public Model
+   // executes it on the model execution thread.
+   void LoadModelFileAndBatchExecute(
+       BatchExecutionCallback callback_on_complete,
+-      ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs) {
++      typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs) {
+     DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ 
+@@ -434,7 +434,7 @@ class TFLiteModelExecutor : public Model
+ 
+   // Batch executes the loaded model for inputs.
+   void BatchExecuteLoadedModel(
+-      ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
++      typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
+       std::vector<absl::optional<OutputType>>* outputs) {
+     DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+@@ -494,7 +494,7 @@ class TFLiteModelExecutor : public Model
+   // Unloads the model if needed.
+   void BatchExecuteLoadedModelAndRunCallback(
+       BatchExecutionCallback callback_on_complete,
+-      ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
++      typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
+       ExecutionStatus execution_status) {
+     DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+--- a/src/3rdparty/chromium/components/supervised_user/core/browser/proto_fetcher.cc
++++ b/src/3rdparty/chromium/components/supervised_user/core/browser/proto_fetcher.cc
+@@ -399,7 +399,7 @@ class RetryingFetcherImpl final : public
+   RetryingFetcherImpl(const RetryingFetcherImpl&) = delete;
+   RetryingFetcherImpl& operator=(const RetryingFetcherImpl&) = delete;
+ 
+-  void Start(ProtoFetcher<Response>::Callback callback) override {
++  void Start(typename ProtoFetcher<Response>::Callback callback) override {
+     callback_ = std::move(callback);
+     Retry();
+   }
+@@ -435,7 +435,7 @@ class RetryingFetcherImpl final : public
+   }
+ 
+   // Client callback.
+-  ProtoFetcher<Response>::Callback callback_;
++  typename ProtoFetcher<Response>::Callback callback_;
+ 
+   // Retry controls.
+   base::OneShotTimer timer_;
+@@ -578,7 +578,7 @@ ParallelFetchManager<Request, Response>:
+ template <typename Request, typename Response>
+ void ParallelFetchManager<Request, Response>::Fetch(
+     const Request& request,
+-    Fetcher::Callback callback) {
++    typename Fetcher::Callback callback) {
+   CHECK(callback) << "Use base::DoNothing() instead of empty callback.";
+   KeyType key = requests_in_flight_.Add(MakeFetcher(request));
+   requests_in_flight_.Lookup(key)->Start(
+--- a/src/3rdparty/chromium/components/supervised_user/core/browser/proto_fetcher.h
++++ b/src/3rdparty/chromium/components/supervised_user/core/browser/proto_fetcher.h
+@@ -165,10 +165,10 @@ class ParallelFetchManager {
+ 
+   // Starts the fetch. Underlying fetcher is stored internally, and will be
+   // cleaned up after finish or when this manager is destroyed.
+-  void Fetch(const Request& request, Fetcher::Callback callback);
++  void Fetch(const Request& request, typename Fetcher::Callback callback);
+ 
+  private:
+-  using KeyType = base::IDMap<std::unique_ptr<Fetcher>>::KeyType;
++  using KeyType = typename base::IDMap<std::unique_ptr<Fetcher>>::KeyType;
+ 
+   // Remove fetcher under key from requests_in_flight_.
+   void Remove(KeyType key);
diff --git a/srcpkgs/qt6-pdf/patches/0111-chromium-cstdint.patch b/srcpkgs/qt6-pdf/patches/0111-chromium-cstdint.patch
deleted file mode 100644
index f5787621b579ce..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0111-chromium-cstdint.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/net/third_party/quiche/src/quiche/http2/adapter/window_manager.h
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/net/third_party/quiche/src/quiche/http2/adapter/window_manager.h
-@@ -3,6 +3,7 @@
- 
- #include <stddef.h>
- 
-+#include <cstdint>
- #include <functional>
- 
- #include "quiche/common/platform/api/quiche_export.h"
diff --git a/srcpkgs/qt6-pdf/patches/0112-chromium-118-missing-header-files.patch b/srcpkgs/qt6-pdf/patches/0112-chromium-118-missing-header-files.patch
new file mode 100644
index 00000000000000..43861ea7321752
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0112-chromium-118-missing-header-files.patch
@@ -0,0 +1,379 @@
+--- a/src/3rdparty/chromium/base/memory/ref_counted.h
++++ b/src/3rdparty/chromium/base/memory/ref_counted.h
+@@ -6,6 +6,7 @@
+ #define BASE_MEMORY_REF_COUNTED_H_
+ 
+ #include <stddef.h>
++#include <limits>
+ 
+ #include <limits>
+ #include <utility>
+--- a/src/3rdparty/chromium/base/check_op.h
++++ b/src/3rdparty/chromium/base/check_op.h
+@@ -5,6 +5,7 @@
+ #ifndef BASE_CHECK_OP_H_
+ #define BASE_CHECK_OP_H_
+ 
++#include <cstdint>
+ #include <cstddef>
+ #include <string>
+ #include <string_view>
+--- a/src/3rdparty/chromium/base/debug/profiler.h
++++ b/src/3rdparty/chromium/base/debug/profiler.h
+@@ -8,6 +8,7 @@
+ #include <stddef.h>
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <string>
+ 
+ #include "base/base_export.h"
+--- a/src/3rdparty/chromium/gpu/config/gpu_feature_info.h
++++ b/src/3rdparty/chromium/gpu/config/gpu_feature_info.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <string>
+ #include <vector>
+ 
+--- a/src/3rdparty/chromium/net/base/net_export.h
++++ b/src/3rdparty/chromium/net/base/net_export.h
+@@ -5,6 +5,8 @@
+ #ifndef NET_BASE_NET_EXPORT_H_
+ #define NET_BASE_NET_EXPORT_H_
+ 
++#include <cstdint>
++
+ // Defines NET_EXPORT so that functionality implemented by the net module can
+ // be exported to consumers, and NET_EXPORT_PRIVATE that allows unit tests to
+ // access features not intended to be used directly by real consumers.
+--- a/src/3rdparty/chromium/sandbox/linux/syscall_broker/broker_file_permission.h
++++ b/src/3rdparty/chromium/sandbox/linux/syscall_broker/broker_file_permission.h
+@@ -5,6 +5,7 @@
+ #ifndef SANDBOX_LINUX_SYSCALL_BROKER_BROKER_FILE_PERMISSION_H_
+ #define SANDBOX_LINUX_SYSCALL_BROKER_BROKER_FILE_PERMISSION_H_
+ 
++#include <cstdint>
+ #include <bitset>
+ #include <cstdint>
+ #include <string>
+--- a/src/3rdparty/chromium/third_party/abseil-cpp/absl/strings/string_view.h
++++ b/src/3rdparty/chromium/third_party/abseil-cpp/absl/strings/string_view.h
+@@ -27,6 +27,7 @@
+ #ifndef ABSL_STRINGS_STRING_VIEW_H_
+ #define ABSL_STRINGS_STRING_VIEW_H_
+ 
++#include <cstdint>
+ #include <algorithm>
+ #include <cassert>
+ #include <cstddef>
+--- a/src/3rdparty/chromium/third_party/angle/include/GLSLANG/ShaderVars.h
++++ b/src/3rdparty/chromium/third_party/angle/include/GLSLANG/ShaderVars.h
+@@ -10,6 +10,7 @@
+ #ifndef GLSLANG_SHADERVARS_H_
+ #define GLSLANG_SHADERVARS_H_
+ 
++#include <cstdint>
+ #include <algorithm>
+ #include <array>
+ #include <cstdint>
+--- a/src/3rdparty/chromium/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h
++++ b/src/3rdparty/chromium/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <array>
+ #include <cstdint>
+ #include <functional>
+--- a/src/3rdparty/chromium/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h
++++ b/src/3rdparty/chromium/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h
+@@ -15,6 +15,7 @@
+ #ifndef SRC_TINT_LANG_SPIRV_READER_AST_PARSER_NAMER_H_
+ #define SRC_TINT_LANG_SPIRV_READER_AST_PARSER_NAMER_H_
+ 
++#include <cstdint>
+ #include <string>
+ #include <unordered_map>
+ #include <vector>
+--- a/src/3rdparty/chromium/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h
++++ b/src/3rdparty/chromium/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <functional>
+ #include <map>
+ #include <set>
+--- a/src/3rdparty/chromium/third_party/swiftshader/src/System/LRUCache.hpp
++++ b/src/3rdparty/chromium/third_party/swiftshader/src/System/LRUCache.hpp
+@@ -17,6 +17,7 @@
+ 
+ #include "System/Debug.hpp"
+ 
++#include <cstdint>
+ #include <cstddef>
+ #include <cstdint>
+ #include <functional>
+--- a/src/3rdparty/chromium/ui/gfx/geometry/linear_gradient.h
++++ b/src/3rdparty/chromium/ui/gfx/geometry/linear_gradient.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <array>
+ #include <cstddef>
+ #include <cstdint>
+--- a/src/3rdparty/chromium/third_party/ruy/src/ruy/profiler/instrumentation.h
++++ b/src/3rdparty/chromium/third_party/ruy/src/ruy/profiler/instrumentation.h
+@@ -17,6 +17,7 @@ limitations under the License.
+ #define RUY_RUY_PROFILER_INSTRUMENTATION_H_
+ 
+ #ifdef RUY_PROFILER
++#include <string>
+ #include <cstdio>
+ #include <mutex>
+ #include <vector>
+--- a/src/3rdparty/chromium/base/containers/flat_map.h
++++ b/src/3rdparty/chromium/base/containers/flat_map.h
+@@ -5,6 +5,7 @@
+ #ifndef BASE_CONTAINERS_FLAT_MAP_H_
+ #define BASE_CONTAINERS_FLAT_MAP_H_
+ 
++#include <cstdint>
+ #include <functional>
+ #include <tuple>
+ #include <type_traits>
+--- a/src/3rdparty/chromium/components/crash/core/app/crash_reporter_client.h
++++ b/src/3rdparty/chromium/components/crash/core/app/crash_reporter_client.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <string>
+ 
+ #include "build/build_config.h"
+--- a/src/3rdparty/chromium/ui/base/prediction/kalman_filter.h
++++ b/src/3rdparty/chromium/ui/base/prediction/kalman_filter.h
+@@ -7,6 +7,8 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
++
+ #include "base/component_export.h"
+ #include "ui/gfx/geometry/matrix3_f.h"
+ 
+--- a/src/3rdparty/chromium/components/password_manager/core/browser/generation/password_generator.h
++++ b/src/3rdparty/chromium/components/password_manager/core/browser/generation/password_generator.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <string>
+ 
+ 
+--- a/src/3rdparty/chromium/components/feature_engagement/internal/event_storage_validator.h
++++ b/src/3rdparty/chromium/components/feature_engagement/internal/event_storage_validator.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <string>
+ 
+ namespace feature_engagement {
+--- a/src/3rdparty/chromium/components/feature_engagement/internal/never_event_storage_validator.h
++++ b/src/3rdparty/chromium/components/feature_engagement/internal/never_event_storage_validator.h
+@@ -5,6 +5,7 @@
+ #ifndef COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_NEVER_EVENT_STORAGE_VALIDATOR_H_
+ #define COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_NEVER_EVENT_STORAGE_VALIDATOR_H_
+ 
++#include <cstdint>
+ #include <string>
+ 
+ #include "components/feature_engagement/internal/event_storage_validator.h"
+--- a/src/3rdparty/chromium/components/autofill/core/browser/autofill_ablation_study.h
++++ b/src/3rdparty/chromium/components/autofill/core/browser/autofill_ablation_study.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <string>
+ 
+ class GURL;
+--- a/src/3rdparty/chromium/components/payments/content/utility/fingerprint_parser.h
++++ b/src/3rdparty/chromium/components/payments/content/utility/fingerprint_parser.h
+@@ -5,6 +5,7 @@
+ #ifndef COMPONENTS_PAYMENTS_CONTENT_UTILITY_FINGERPRINT_PARSER_H_
+ #define COMPONENTS_PAYMENTS_CONTENT_UTILITY_FINGERPRINT_PARSER_H_
+ 
++#include <cstdint>
+ #include <stddef.h>
+ #include <stdint.h>
+ 
+--- a/src/3rdparty/chromium/pdf/document_attachment_info.h
++++ b/src/3rdparty/chromium/pdf/document_attachment_info.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <string>
+ 
+ 
+--- a/src/3rdparty/chromium/third_party/pdfium/constants/annotation_flags.h
++++ b/src/3rdparty/chromium/third_party/pdfium/constants/annotation_flags.h
+@@ -7,6 +7,8 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
++
+ namespace pdfium {
+ namespace annotation_flags {
+ 
+--- a/src/3rdparty/chromium/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
++++ b/src/3rdparty/chromium/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
+@@ -2884,6 +2884,7 @@ static void vma_aligned_free(void* VMA_N
+ 
+ // Define this macro to 1 to enable functions: vmaBuildStatsString, vmaFreeStatsString.
+ #if VMA_STATS_STRING_ENABLED
++#include <stdio.h>
+     static inline void VmaUint32ToStr(char* VMA_NOT_NULL outStr, size_t strLen, uint32_t num)
+     {
+         snprintf(outStr, strLen, "%u", static_cast<unsigned int>(num));
+--- a/src/3rdparty/chromium/gin/time_clamper.h
++++ b/src/3rdparty/chromium/gin/time_clamper.h
+@@ -48,7 +48,7 @@ class GIN_EXPORT TimeClamper {
+     const int64_t micros = now_micros % 1000;
+     // abs() is necessary for devices with times before unix-epoch (most likely
+     // configured incorrectly).
+-    if (abs(micros) + kResolutionMicros < 1000) {
++    if (std::abs(micros) + kResolutionMicros < 1000) {
+       return now_micros / 1000;
+     }
+     return ClampTimeResolution(now_micros) / 1000;
+--- a/src/3rdparty/chromium/chrome/test/chromedriver/chrome/web_view_impl.cc
++++ b/src/3rdparty/chromium/chrome/test/chromedriver/chrome/web_view_impl.cc
+@@ -11,6 +11,7 @@
+ #include <queue>
+ #include <utility>
+ #include <vector>
++#include <cstring>
+ 
+ #include "base/check.h"
+ #include "base/files/file_path.h"
+--- a/src/3rdparty/chromium/skia/ext/skcolorspace_trfn.cc
++++ b/src/3rdparty/chromium/skia/ext/skcolorspace_trfn.cc
+@@ -3,6 +3,7 @@
+ // found in the LICENSE file.
+ 
+ #include "skia/ext/skcolorspace_trfn.h"
++#include <cmath>
+ 
+ #include <cmath>
+ 
+--- a/src/3rdparty/chromium/third_party/webrtc/common_video/h264/sps_parser.h
++++ b/src/3rdparty/chromium/third_party/webrtc/common_video/h264/sps_parser.h
+@@ -11,6 +11,7 @@
+ #ifndef COMMON_VIDEO_H264_SPS_PARSER_H_
+ #define COMMON_VIDEO_H264_SPS_PARSER_H_
+ 
++#include <cstdint>
+ #include "absl/types/optional.h"
+ #include "rtc_base/bitstream_reader.h"
+ 
+--- a/src/3rdparty/chromium/third_party/webrtc/modules/include/module_common_types_public.h
++++ b/src/3rdparty/chromium/third_party/webrtc/modules/include/module_common_types_public.h
+@@ -11,6 +11,7 @@
+ #ifndef MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
+ #define MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
+ 
++#include <cstdint>
+ #include <limits>
+ 
+ #include "absl/types/optional.h"
+--- a/src/3rdparty/chromium/ui/gfx/linux/drm_util_linux.h
++++ b/src/3rdparty/chromium/ui/gfx/linux/drm_util_linux.h
+@@ -9,6 +9,8 @@
+ 
+ #include "ui/gfx/buffer_types.h"
+ 
++#include <cstdint>
++
+ namespace ui {
+ 
+ int GetFourCCFormatFromBufferFormat(gfx::BufferFormat format);
+--- a/src/3rdparty/chromium/third_party/webrtc/audio/utility/channel_mixer.cc
++++ b/src/3rdparty/chromium/third_party/webrtc/audio/utility/channel_mixer.cc
+@@ -8,6 +8,8 @@
+  *  be found in the AUTHORS file in the root of the source tree.
+  */
+ 
++#include <cstring>
++
+ #include "audio/utility/channel_mixer.h"
+ 
+ #include "audio/utility/channel_mixing_matrix.h"
+--- a/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc
++++ b/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc
+@@ -10,6 +10,7 @@
+ 
+ #include "modules/video_coding/utility/ivf_file_reader.h"
+ 
++#include <cstring>
+ #include <string>
+ #include <vector>
+ 
+--- a/src/3rdparty/chromium/third_party/ipcz/src/ipcz/router_link.h
++++ b/src/3rdparty/chromium/third_party/ipcz/src/ipcz/router_link.h
+@@ -5,6 +5,7 @@
+ #ifndef IPCZ_SRC_IPCZ_ROUTER_LINK_H_
+ #define IPCZ_SRC_IPCZ_ROUTER_LINK_H_
+ 
++#include <memory>
+ #include <cstddef>
+ #include <functional>
+ #include <memory>
+--- a/src/3rdparty/chromium/third_party/material_color_utilities/src/cpp/palettes/tones.cc
++++ b/src/3rdparty/chromium/third_party/material_color_utilities/src/cpp/palettes/tones.cc
+@@ -14,6 +14,7 @@
+  * limitations under the License.
+  */
+ 
++#include <cmath>
+ #include "cpp/palettes/tones.h"
+ 
+ #include <cmath>
+--- a/src/3rdparty/chromium/services/device/public/cpp/generic_sensor/sensor_reading.h
++++ b/src/3rdparty/chromium/services/device/public/cpp/generic_sensor/sensor_reading.h
+@@ -8,6 +8,9 @@
+ #include <stddef.h>
+ #include <stdint.h>
+ 
++#include <cstddef>
++#include <cstdint>
++
+ #include <type_traits>
+ 
+ namespace device {
+--- a/src/3rdparty/chromium/components/gwp_asan/client/lightweight_detector.h
++++ b/src/3rdparty/chromium/components/gwp_asan/client/lightweight_detector.h
+@@ -5,6 +5,8 @@
+ #ifndef COMPONENTS_GWP_ASAN_CLIENT_LIGHTWEIGHT_DETECTOR_H_
+ #define COMPONENTS_GWP_ASAN_CLIENT_LIGHTWEIGHT_DETECTOR_H_
+ 
++#include <atomic>
++
+ #include "base/gtest_prod_util.h"
+ #include "components/gwp_asan/client/export.h"
+ #include "components/gwp_asan/common/lightweight_detector_state.h"
diff --git a/srcpkgs/qt6-pdf/patches/0113-chromium-118-no_matching_constructor.patch b/srcpkgs/qt6-pdf/patches/0113-chromium-118-no_matching_constructor.patch
new file mode 100644
index 00000000000000..97926daa8ca0ef
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0113-chromium-118-no_matching_constructor.patch
@@ -0,0 +1,410 @@
+--- a/src/3rdparty/chromium/ui/base/wayland/color_manager_util.h
++++ b/src/3rdparty/chromium/ui/base/wayland/color_manager_util.h
+@@ -52,53 +52,53 @@ constexpr auto kChromaticityMap = base::
+     zcr_color_manager_v1_chromaticity_names,
+     PrimaryVersion>(
+     {{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_525_LINE,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::SMPTE170M,
+-                     kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::SMPTE170M,
++                     kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_625_LINE,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT470BG,
+-                     kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::BT470BG,
++                     kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE170M,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::SMPTE170M,
+-                     kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::SMPTE170M,
++                     kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT709,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT2020,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT2020, kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::BT2020, kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SRGB,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_DISPLAYP3,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::P3, kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::P3, kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_ADOBERGB,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::ADOBE_RGB,
+-                     kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::ADOBE_RGB,
++                     kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::WIDE_GAMUT_COLOR_SPIN,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::BT470M,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::SMPTE240M,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::XYZ_D50,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::SMPTEST428_1,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::SMPTEST431_2,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::FILM,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM_SINCE_VERSION)}});
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM_SINCE_VERSION}}});
+ 
+ // A map from the zcr_color_manager_v1 eotf_names enum values
+ // representing well-known EOTFs, to their equivalent TransferIDs.
+@@ -107,65 +107,65 @@ constexpr auto kEotfMap = base::MakeFixe
+     zcr_color_manager_v1_eotf_names,
+     TransferVersion>({
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
+-     TransferVersion(gfx::ColorSpace::TransferID::LINEAR,
+-                     kDefaultSinceVersion)},
++     TransferVersion{gfx::ColorSpace::TransferID::LINEAR,
++                     kDefaultSinceVersion}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB,
+-     TransferVersion(gfx::ColorSpace::TransferID::SRGB, kDefaultSinceVersion)},
++     TransferVersion{gfx::ColorSpace::TransferID::SRGB, kDefaultSinceVersion}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709,
+-     TransferVersion(gfx::ColorSpace::TransferID::BT709,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::BT709,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2087,
+-     TransferVersion(gfx::ColorSpace::TransferID::GAMMA24,
+-                     kDefaultSinceVersion)},
++     TransferVersion{gfx::ColorSpace::TransferID::GAMMA24,
++                     kDefaultSinceVersion}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_ADOBERGB,
+      // This is ever so slightly inaccurate. The number ought to be
+      // 2.19921875f, not 2.2
+-     TransferVersion(gfx::ColorSpace::TransferID::GAMMA22,
+-                     kDefaultSinceVersion)},
++     TransferVersion{gfx::ColorSpace::TransferID::GAMMA22,
++                     kDefaultSinceVersion}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_PQ,
+-     TransferVersion(gfx::ColorSpace::TransferID::PQ, kDefaultSinceVersion)},
++     TransferVersion{gfx::ColorSpace::TransferID::PQ, kDefaultSinceVersion}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG,
+-     TransferVersion(gfx::ColorSpace::TransferID::HLG,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::HLG,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M,
+-     TransferVersion(gfx::ColorSpace::TransferID::SMPTE170M,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::SMPTE170M,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M,
+-     TransferVersion(gfx::ColorSpace::TransferID::SMPTE240M,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::SMPTE240M,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1,
+-     TransferVersion(
++     TransferVersion{
+          gfx::ColorSpace::TransferID::SMPTEST428_1,
+-         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1_SINCE_VERSION)},
++         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG,
+-     TransferVersion(gfx::ColorSpace::TransferID::LOG,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::LOG,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT,
+-     TransferVersion(gfx::ColorSpace::TransferID::LOG_SQRT,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::LOG_SQRT,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4,
+-     TransferVersion(
++     TransferVersion{
+          gfx::ColorSpace::TransferID::IEC61966_2_4,
+-         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4_SINCE_VERSION)},
++         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG,
+-     TransferVersion(gfx::ColorSpace::TransferID::BT1361_ECG,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::BT1361_ECG,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10,
+-     TransferVersion(gfx::ColorSpace::TransferID::BT2020_10,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::BT2020_10,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12,
+-     TransferVersion(gfx::ColorSpace::TransferID::BT2020_12,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::BT2020_12,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS,
+-     TransferVersion(
++     TransferVersion{
+          gfx::ColorSpace::TransferID::SCRGB_LINEAR_80_NITS,
+-         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS_SINCE_VERSION)},
++         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18,
+-     TransferVersion(gfx::ColorSpace::TransferID::GAMMA18,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::GAMMA18,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28,
+-     TransferVersion(gfx::ColorSpace::TransferID::GAMMA28,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::GAMMA28,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28_SINCE_VERSION}},
+ });
+ 
+ // A map from the SDR zcr_color_manager_v1 eotf_names enum values
+@@ -174,18 +174,18 @@ constexpr auto kEotfMap = base::MakeFixe
+ constexpr auto kTransferMap =
+     base::MakeFixedFlatMap<zcr_color_manager_v1_eotf_names, TransferFnVersion>({
+         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
+-         TransferFnVersion(SkNamedTransferFn::kLinear, kDefaultSinceVersion)},
++         TransferFnVersion{SkNamedTransferFn::kLinear, kDefaultSinceVersion}},
+         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB,
+-         TransferFnVersion(SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion)},
++         TransferFnVersion{SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion}},
+         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709,
+-         TransferFnVersion(
++         TransferFnVersion{
+              SkNamedTransferFnExt::kRec709,
+-             ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION)},
++             ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION}},
+         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2087,
+-         TransferFnVersion(gamma24, kDefaultSinceVersion)},
++         TransferFnVersion{gamma24, kDefaultSinceVersion}},
+         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_ADOBERGB,
+-         TransferFnVersion(SkNamedTransferFnExt::kA98RGB,
+-                           kDefaultSinceVersion)},
++         TransferFnVersion{SkNamedTransferFnExt::kA98RGB,
++                           kDefaultSinceVersion}},
+     });
+ 
+ // A map from the HDR zcr_color_manager_v1 eotf_names enum values
+@@ -194,68 +194,68 @@ constexpr auto kTransferMap =
+ constexpr auto kHDRTransferMap =
+     base::MakeFixedFlatMap<zcr_color_manager_v1_eotf_names, TransferFnVersion>(
+         {{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
+-          TransferFnVersion(SkNamedTransferFn::kLinear, kDefaultSinceVersion)},
++          TransferFnVersion{SkNamedTransferFn::kLinear, kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB,
+-          TransferFnVersion(SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion)},
++          TransferFnVersion{SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_PQ,
+-          TransferFnVersion(SkNamedTransferFn::kPQ, kDefaultSinceVersion)},
++          TransferFnVersion{SkNamedTransferFn::kPQ, kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG,
+-          TransferFnVersion(SkNamedTransferFn::kHLG,
+-                            ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION)},
++          TransferFnVersion{SkNamedTransferFn::kHLG,
++                            ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION}},
+          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10,
+-          TransferFnVersion(
++          TransferFnVersion{
+               SkNamedTransferFnExt::kSRGBExtended1023Over510,
+-              ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10_SINCE_VERSION)}});
++              ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10_SINCE_VERSION}}});
+ 
+ // A map from zcr_color_manager_v1 matrix_names enum values to
+ // gfx::ColorSpace::MatrixIDs.
+ constexpr auto kMatrixMap =
+     base::MakeFixedFlatMap<zcr_color_manager_v1_matrix_names, MatrixVersion>(
+         {{ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_RGB,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::RGB, kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::RGB, kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT709,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::BT709,
+-                        kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::BT709,
++                        kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG,
+-          MatrixVersion(
++          MatrixVersion{
+               gfx::ColorSpace::MatrixID::BT470BG,
+-              ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG_SINCE_VERSION)},
++              ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG_SINCE_VERSION}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT2020_NCL,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::BT2020_NCL,
+-                        kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::BT2020_NCL,
++                        kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT2020_CL,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::BT2020_CL,
+-                        kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::BT2020_CL,
++                        kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_FCC,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::FCC, kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::FCC, kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::YCOCG,
+-                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG_SINCE_VERSION)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::YCOCG,
++                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG_SINCE_VERSION}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::YDZDX,
+-                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX_SINCE_VERSION)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::YDZDX,
++                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX_SINCE_VERSION}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::GBR,
+-                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR_SINCE_VERSION)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::GBR,
++                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR_SINCE_VERSION}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_SMPTE170M,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::SMPTE170M,
+-                        kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::SMPTE170M,
++                        kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_SMPTE240M,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::SMPTE240M,
+-                        kDefaultSinceVersion)}});
++          MatrixVersion{gfx::ColorSpace::MatrixID::SMPTE240M,
++                        kDefaultSinceVersion}}});
+ 
+ // A map from zcr_color_manager_v1 range_names enum values to
+ // gfx::ColorSpace::RangeIDs.
+ constexpr auto kRangeMap =
+     base::MakeFixedFlatMap<zcr_color_manager_v1_range_names, RangeVersion>(
+         {{ZCR_COLOR_MANAGER_V1_RANGE_NAMES_LIMITED,
+-          RangeVersion(gfx::ColorSpace::RangeID::LIMITED,
+-                       kDefaultSinceVersion)},
++          RangeVersion{gfx::ColorSpace::RangeID::LIMITED,
++                       kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_RANGE_NAMES_FULL,
+-          RangeVersion(gfx::ColorSpace::RangeID::FULL, kDefaultSinceVersion)},
++          RangeVersion{gfx::ColorSpace::RangeID::FULL, kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_RANGE_NAMES_DERIVED,
+-          RangeVersion(gfx::ColorSpace::RangeID::DERIVED,
+-                       kDefaultSinceVersion)}});
++          RangeVersion{gfx::ColorSpace::RangeID::DERIVED,
++                       kDefaultSinceVersion}}});
+ 
+ zcr_color_manager_v1_chromaticity_names ToColorManagerChromaticity(
+     gfx::ColorSpace::PrimaryID primaryID,
+--- a/src/3rdparty/chromium/chrome/test/chromedriver/capabilities.cc
++++ b/src/3rdparty/chromium/chrome/test/chromedriver/capabilities.cc
+@@ -346,7 +346,7 @@ Status ParseMobileEmulation(const base::
+                         "'version' field of type string");
+         }
+ 
+-        brands.emplace_back(*brand, *version);
++        brands.emplace_back() = {*brand, *version};
+       }
+ 
+       client_hints.brands = std::move(brands);
+@@ -384,7 +384,7 @@ Status ParseMobileEmulation(const base::
+                         "a 'version' field of type string");
+         }
+ 
+-        full_version_list.emplace_back(*brand, *version);
++        full_version_list.emplace_back() = {*brand, *version};
+       }
+ 
+       client_hints.full_version_list = std::move(full_version_list);
+--- a/src/3rdparty/chromium/base/trace_event/trace_log.cc
++++ b/src/3rdparty/chromium/base/trace_event/trace_log.cc
+@@ -2190,8 +2190,8 @@ void TraceLog::SetTraceBufferForTesting(
+ #if BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY)
+ void TraceLog::OnSetup(const perfetto::DataSourceBase::SetupArgs& args) {
+   AutoLock lock(track_event_lock_);
+-  track_event_sessions_.emplace_back(args.internal_instance_index, *args.config,
+-                                     args.backend_type);
++  track_event_sessions_.emplace_back() = {args.internal_instance_index, *args.config,
++                                     args.backend_type};
+ }
+ 
+ void TraceLog::OnStart(const perfetto::DataSourceBase::StartArgs&) {
+--- a/src/3rdparty/chromium/ui/gtk/gtk_ui.cc
++++ b/src/3rdparty/chromium/ui/gtk/gtk_ui.cc
+@@ -955,11 +955,11 @@ ui::DisplayConfig GtkUi::GetDisplayConfi
+     GdkRectangle geometry;
+     gdk_monitor_get_geometry(monitor, &geometry);
+     int monitor_scale = std::max(1, gdk_monitor_get_scale_factor(monitor));
+-    config.display_geometries.emplace_back(
++    config.display_geometries.emplace_back() = {
+         gfx::Rect(monitor_scale * geometry.x, monitor_scale * geometry.y,
+                   monitor_scale * geometry.width,
+                   monitor_scale * geometry.height),
+-        monitor_scale * font_scale);
++        static_cast<float>(monitor_scale * font_scale)};
+   }
+   return config;
+ }
+--- a/src/3rdparty/chromium/components/autofill/core/browser/contact_info_sync_util.cc
++++ b/src/3rdparty/chromium/components/autofill/core/browser/contact_info_sync_util.cc
+@@ -174,9 +174,9 @@ class ContactInfoProfileSetter {
+     CHECK(observations.empty());
+     for (const sync_pb::ContactInfoSpecifics::Observation& proto_observation :
+          proto_observations) {
+-      observations.emplace_back(proto_observation.type(),
++      observations.emplace_back() = {static_cast<unsigned char>(proto_observation.type()),
+                                 ProfileTokenQuality::FormSignatureHash(
+-                                    proto_observation.form_hash()));
++                                    proto_observation.form_hash())};
+     }
+   }
+ 
+--- a/src/3rdparty/chromium/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc
++++ b/src/3rdparty/chromium/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc
+@@ -553,11 +553,11 @@ ServerCvc AutofillWalletCvcStructDataFro
+   base::StringToInt64(wallet_credential_specifics.instrument_id(),
+                       &instrument_id);
+ 
+-  return ServerCvc(
++  return ServerCvc{
+       instrument_id, base::UTF8ToUTF16(wallet_credential_specifics.cvc()),
+       base::Time::UnixEpoch() +
+           base::Milliseconds(wallet_credential_specifics
+-                                 .last_updated_time_unix_epoch_millis()));
++                                 .last_updated_time_unix_epoch_millis())};
+ }
+ 
+ VirtualCardUsageData VirtualCardUsageDataFromUsageSpecifics(
+--- a/src/3rdparty/chromium/chrome/test/chromedriver/capabilities.cc
++++ b/src/3rdparty/chromium/chrome/test/chromedriver/capabilities.cc
+@@ -346,7 +346,7 @@ Status ParseMobileEmulation(const base::
+                         "'version' field of type string");
+         }
+ 
+-        brands.emplace_back() = {*brand, *version};
++        brands.emplace_back(*brand, *version);
+       }
+ 
+       client_hints.brands = std::move(brands);
+@@ -384,7 +384,7 @@ Status ParseMobileEmulation(const base::
+                         "a 'version' field of type string");
+         }
+ 
+-        full_version_list.emplace_back() = {*brand, *version};
++        full_version_list.emplace_back(*brand, *version);
+       }
+ 
+       client_hints.full_version_list = std::move(full_version_list);
diff --git a/srcpkgs/qt6-pdf/patches/0114-chromium-118-python-3.12-deprecated.patch b/srcpkgs/qt6-pdf/patches/0114-chromium-118-python-3.12-deprecated.patch
new file mode 100644
index 00000000000000..1b71a5a0ad023c
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0114-chromium-118-python-3.12-deprecated.patch
@@ -0,0 +1,98 @@
+--- a/src/3rdparty/chromium/base/write_build_date_header.py
++++ b/src/3rdparty/chromium/base/write_build_date_header.py
+@@ -17,7 +17,7 @@ def main():
+   args = argument_parser.parse_args()
+ 
+   date_val = int(args.timestamp)
+-  date = datetime.datetime.utcfromtimestamp(date_val)
++  date =  datetime.datetime.fromtimestamp(date_val, datetime.timezone.utc)
+   output = ('// Generated by //base/write_build_date_header.py\n'
+             '#ifndef BASE_GENERATED_BUILD_DATE_TIMESTAMP \n'
+             f'#define BASE_GENERATED_BUILD_DATE_TIMESTAMP {date_val}'
+--- a/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py
++++ b/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py
+@@ -40,6 +40,12 @@ class GoogleProtobufModuleImporter:
+         return filepath
+     return None
+ 
++  def load_source(name: str, path: str) -> types.ModuleType:
++    spec = importlib.util.spec_from_file_location(name, path)
++    module = importlib.util.module_from_spec(spec)
++    spec.loader.exec_module(module)
++    return module
++
+   def _module_exists(self, fullname):
+     return self._fullname_to_filepath(fullname) is not None
+ 
+--- a/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py
++++ b/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py
+@@ -18,7 +18,7 @@ class HTMLGenerationController(object):
+ 
+   def GetHTMLForInlineStylesheet(self, contents):
+     if self.current_module is None:
+-      if re.search('url\(.+\)', contents):
++      if re.search(r'url\(.+\)', contents):
+         raise Exception(
+             'Default HTMLGenerationController cannot handle inline style urls')
+       return contents
+--- a/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py
++++ b/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py
+@@ -4,4 +4,4 @@
+ 
+ 
+ def EscapeJSIfNeeded(js):
+-  return js.replace('</script>', '<\/script>')
++  return js.replace(r'</script>', r'<\/script>')
+--- a/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py
++++ b/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py
+@@ -293,6 +293,6 @@ class HTMLModuleParser():
+       html = ''
+     else:
+       if html.find('< /script>') != -1:
+-        raise Exception('Escape script tags with <\/script>')
++        raise Exception(r'Escape script tags with <\/script>')
+ 
+     return HTMLModuleParserResults(html)
+--- a/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py
++++ b/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py
+@@ -60,7 +60,7 @@ class ParsedStyleSheet(object):
+       return 'url(data:image/%s;base64,%s)' % (ext[1:], data.decode('utf-8'))
+ 
+     # I'm assuming we only have url()'s associated with images
+-    return re.sub('url\((?P<quote>"|\'|)(?P<url>[^"\'()]*)(?P=quote)\)',
++    return re.sub(r'url\((?P<quote>"|\'|)(?P<url>[^"\'()]*)(?P=quote)\)',
+                   InlineUrl, self.contents)
+ 
+   def AppendDirectlyDependentFilenamesTo(self, dependent_filenames):
+@@ -72,7 +72,7 @@ class ParsedStyleSheet(object):
+       raise Exception('@imports are not supported')
+ 
+     matches = re.findall(
+-        'url\((?:["|\']?)([^"\'()]*)(?:["|\']?)\)',
++        r'url\((?:["|\']?)([^"\'()]*)(?:["|\']?)\)',
+         self.contents)
+ 
+     def resolve_url(url):
+--- a/src/3rdparty/chromium/third_party/dawn/generator/generator_lib.py
++++ b/src/3rdparty/chromium/third_party/dawn/generator/generator_lib.py
+@@ -119,8 +119,8 @@ class _PreprocessingLoader(jinja2.BaseLo
+             source = self.preprocess(f.read())
+         return source, path, lambda: mtime == os.path.getmtime(path)
+ 
+-    blockstart = re.compile('{%-?\s*(if|elif|else|for|block|macro)[^}]*%}')
+-    blockend = re.compile('{%-?\s*(end(if|for|block|macro)|elif|else)[^}]*%}')
++    blockstart = re.compile(r'{%-?\s*(if|elif|else|for|block|macro)[^}]*%}')
++    blockend = re.compile(r'{%-?\s*(end(if|for|block|macro)|elif|else)[^}]*%}')
+ 
+     def preprocess(self, source):
+         lines = source.split('\n')
+--- a/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py
++++ b/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py
+@@ -16,6 +16,7 @@ import re
+ import subprocess
+ import sys
+ import traceback
++import types
+ 
+ 
+ class GoogleProtobufModuleImporter:
diff --git a/srcpkgs/qt6-pdf/patches/0116-chromium-118-workaround_clang_bug-structured_binding.patch b/srcpkgs/qt6-pdf/patches/0116-chromium-118-workaround_clang_bug-structured_binding.patch
new file mode 100644
index 00000000000000..38aa477193a5ab
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0116-chromium-118-workaround_clang_bug-structured_binding.patch
@@ -0,0 +1,25 @@
+--- a/src/3rdparty/chromium/media/base/cdm_promise_adapter.cc
++++ b/src/3rdparty/chromium/media/base/cdm_promise_adapter.cc
+@@ -94,7 +94,9 @@ void CdmPromiseAdapter::RejectPromise(ui
+ void CdmPromiseAdapter::Clear(ClearReason reason) {
+   // Reject all outstanding promises.
+   DCHECK(thread_checker_.CalledOnValidThread());
+-  for (auto& [promise_id, promise] : promises_) {
++  for (auto& [p_i, p_e] : promises_) {
++    auto& promise_id = p_i;
++    auto& promise = p_e;
+     TRACE_EVENT_NESTABLE_ASYNC_END1(
+         "media", "CdmPromise", TRACE_ID_WITH_SCOPE("CdmPromise", promise_id),
+         "status", "cleared");
+--- a/src/3rdparty/chromium/content/browser/service_worker/service_worker_context_wrapper.cc
++++ b/src/3rdparty/chromium/content/browser/service_worker/service_worker_context_wrapper.cc
+@@ -1409,7 +1409,8 @@ void ServiceWorkerContextWrapper::MaybeP
+     return;
+   }
+ 
+-  auto [document_url, key, callback] = std::move(*request);
++  auto [d_u, key, callback] = std::move(*request);
++  auto document_url = d_u;
+ 
+   DCHECK(document_url.is_valid());
+   TRACE_EVENT1("ServiceWorker",
diff --git a/srcpkgs/qt6-pdf/patches/0117-chromium-i686-vaapi-fpermissive.patch b/srcpkgs/qt6-pdf/patches/0117-chromium-i686-vaapi-fpermissive.patch
new file mode 100644
index 00000000000000..ad2102d650cc6d
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0117-chromium-i686-vaapi-fpermissive.patch
@@ -0,0 +1,23 @@
+--- a/src/3rdparty/chromium/media/gpu/vaapi/BUILD.gn
++++ b/src/3rdparty/chromium/media/gpu/vaapi/BUILD.gn
+@@ -13,6 +13,12 @@ import("//tools/generate_stubs/rules.gni
+ assert(is_linux || is_chromeos)
+ assert(use_vaapi)
+ 
++config("vaapi_permissive") {
++  if (target_cpu == "x86") {
++    cflags = [ "-fpermissive" ]
++  }
++}
++
+ generate_stubs("libva_stubs") {
+   extra_header = "va_stub_header.fragment"
+   sigs = [ "va.sigs" ]
+@@ -81,6 +87,7 @@ source_set("vaapi") {
+   configs += [
+     "//build/config/linux/libva",
+     "//third_party/libvpx:libvpx_config",
++    ":vaapi_permissive",
+   ]
+ 
+   deps = [
diff --git a/srcpkgs/qt6-pdf/patches/0117-chromium-musl-resolver.patch b/srcpkgs/qt6-pdf/patches/0117-chromium-musl-resolver.patch
deleted file mode 100644
index 12d1f81833cbad..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0117-chromium-musl-resolver.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-diff --git a/src/3rdparty/chromium/net/dns/dns_reloader.cc b/src/3rdparty/chromium/net/dns/dns_reloader.cc
-index 363eb14dc..3a86c12ee 100644
---- a/src/3rdparty/chromium/net/dns/dns_reloader.cc
-+++ b/src/3rdparty/chromium/net/dns/dns_reloader.cc
-@@ -8,7 +8,7 @@
- 
- // If we're not on a POSIX system, it's not even safe to try to include resolv.h
- // - there's not guarantee it exists at all. :(
--#if BUILDFLAG(IS_POSIX)
-+#if defined(__GLIBC__)
- 
- #include <resolv.h>
- 
-diff --git a/src/3rdparty/chromium/net/dns/host_resolver_system_task.cc b/src/3rdparty/chromium/net/dns/host_resolver_system_task.cc
-index d8142e8da..f2461b877 100644
---- a/src/3rdparty/chromium/net/dns/host_resolver_system_task.cc
-+++ b/src/3rdparty/chromium/net/dns/host_resolver_system_task.cc
-@@ -351,8 +351,9 @@ void HostResolverSystemTask::OnLookupComplete(const uint32_t attempt_number,
- }
- 
- void EnsureSystemHostResolverCallReady() {
-+#if defined(__GLIBC__)
-   EnsureDnsReloaderInit();
--#if BUILDFLAG(IS_WIN)
-+#elif BUILDFLAG(IS_WIN)
-   EnsureWinsockInit();
- #endif
- }
-@@ -434,7 +435,9 @@ int SystemHostResolverCall(const std::string& host,
-   // current process during that time.
-   base::ScopedBlockingCall scoped_blocking_call(FROM_HERE,
-                                                 base::BlockingType::WILL_BLOCK);
-+#if defined(__GLIBC__)
-   DnsReloaderMaybeReload();
-+#endif
- 
-   auto [ai, err, os_error] = AddressInfo::Get(host, hints, nullptr, network);
-   bool should_retry = false;
-diff --git a/src/3rdparty/chromium/net/dns/public/scoped_res_state.cc b/src/3rdparty/chromium/net/dns/public/scoped_res_state.cc
-index 2743697bf..36dc8adbf 100644
---- a/src/3rdparty/chromium/net/dns/public/scoped_res_state.cc
-+++ b/src/3rdparty/chromium/net/dns/public/scoped_res_state.cc
-@@ -13,7 +13,7 @@
- namespace net {
- 
- ScopedResState::ScopedResState() {
--#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_FUCHSIA)
-+#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_FUCHSIA) || (BUILDFLAG(IS_LINUX) && !defined(__GLIBC__))
-   // Note: res_ninit in glibc always returns 0 and sets RES_INIT.
-   // res_init behaves the same way.
-   memset(&_res, 0, sizeof(_res));
-@@ -25,7 +25,7 @@ ScopedResState::ScopedResState() {
- }
- 
- ScopedResState::~ScopedResState() {
--#if !BUILDFLAG(IS_OPENBSD) && !BUILDFLAG(IS_FUCHSIA)
-+#if !BUILDFLAG(IS_OPENBSD) && !BUILDFLAG(IS_FUCHSIA) && !(BUILDFLAG(IS_LINUX) && !defined(__GLIBC__))
- 
-   // Prefer res_ndestroy where available.
- #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD)
diff --git a/srcpkgs/qt6-pdf/patches/0105-chromium-revert-drop-of-system-java.patch b/srcpkgs/qt6-pdf/patches/0118-chromium-revert-drop-of-system-java.patch
similarity index 76%
rename from srcpkgs/qt6-pdf/patches/0105-chromium-revert-drop-of-system-java.patch
rename to srcpkgs/qt6-pdf/patches/0118-chromium-revert-drop-of-system-java.patch
index d6abf7adcabcd6..44f3aa8fae5e94 100644
--- a/srcpkgs/qt6-pdf/patches/0105-chromium-revert-drop-of-system-java.patch
+++ b/srcpkgs/qt6-pdf/patches/0118-chromium-revert-drop-of-system-java.patch
@@ -1,6 +1,6 @@
 This was dropped for some reason in 6951c37cecd05979b232a39e5c10e6346a0f74ef
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/closure_compiler/compiler.py
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/closure_compiler/compiler.py
+--- a/src/3rdparty/chromium/third_party/closure_compiler/compiler.py
++++ b/src/3rdparty/chromium/third_party/closure_compiler/compiler.py
 @@ -13,8 +13,9 @@ import subprocess
  
  
diff --git a/srcpkgs/qt6-pdf/patches/0119-chromium-system-nodejs.patch b/srcpkgs/qt6-pdf/patches/0119-chromium-system-nodejs.patch
new file mode 100644
index 00000000000000..224d539e6f59ef
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0119-chromium-system-nodejs.patch
@@ -0,0 +1,20 @@
+--- a/src/3rdparty/chromium/third_party/node/node.py
++++ b/src/3rdparty/chromium/third_party/node/node.py
+@@ -32,11 +32,12 @@ def GetBinaryPath():
+ 
+   darwin_name = ('node-darwin-arm64' if platform.machine() == 'arm64' else
+                  'node-darwin-x64')
+-  return os_path.join(os_path.dirname(__file__), *{
+-    'Darwin': ('mac', darwin_name, 'bin', 'node'),
+-    'Linux': ('linux', 'node-linux-x64', 'bin', 'node'),
+-    'Windows': ('win', 'node.exe'),
+-  }[platform.system()])
++  #return os_path.join(os_path.dirname(__file__), *{
++  #  'Darwin': ('mac', darwin_name, 'bin', 'node'),
++  #  'Linux': ('linux', 'node-linux-x64', 'bin', 'node'),
++  #  'Windows': ('win', 'node.exe'),
++  #}[platform.system()])
++  return "/usr/bin/node"
+ 
+ 
+ def RunNode(cmd_parts, stdout=None):
diff --git a/srcpkgs/qt6-pdf/patches/0107-chromium-cross-build.patch b/srcpkgs/qt6-pdf/patches/0120-cross-build.patch
similarity index 72%
rename from srcpkgs/qt6-pdf/patches/0107-chromium-cross-build.patch
rename to srcpkgs/qt6-pdf/patches/0120-cross-build.patch
index 7fbfabcd79b79e..c533e500a71902 100644
--- a/srcpkgs/qt6-pdf/patches/0107-chromium-cross-build.patch
+++ b/srcpkgs/qt6-pdf/patches/0120-cross-build.patch
@@ -1,6 +1,6 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/build/config/compiler/BUILD.gn
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/build/config/compiler/BUILD.gn
-@@ -58,6 +58,10 @@ if (!is_clang) {
+--- a/src/3rdparty/chromium/build/config/compiler/BUILD.gn
++++ b/src/3rdparty/chromium/build/config/compiler/BUILD.gn
+@@ -59,6 +59,10 @@ if (!is_clang) {
  }
  
  declare_args() {
@@ -11,7 +11,7 @@
    # Normally, Android builds are lightly optimized, even for debug builds, to
    # keep binary size down. Setting this flag to true disables such optimization
    android_full_debug = false
-@@ -1003,8 +1003,13 @@
+@@ -1190,8 +1194,13 @@ config("compiler_cpu_abi") {
      } else if (current_cpu == "arm64") {
        if (is_clang && !is_android && !is_nacl && !is_fuchsia &&
            !(is_chromeos_lacros && is_chromeos_device)) {
@@ -25,10 +25,10 @@
 +          ldflags += [ "--target=aarch64-linux-gnu" ]
 +        }
        }
-       if (is_android) {
-         # Outline atomics crash on Exynos 9810. http://crbug.com/1272795
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/build/toolchain/linux/unbundle/BUILD.gn
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/build/toolchain/linux/unbundle/BUILD.gn
+     } else if (current_cpu == "mipsel" && !is_nacl) {
+       ldflags += [ "-Wl,--hash-style=sysv" ]
+--- a/src/3rdparty/chromium/build/toolchain/linux/unbundle/BUILD.gn
++++ b/src/3rdparty/chromium/build/toolchain/linux/unbundle/BUILD.gn
 @@ -39,3 +39,22 @@ gcc_toolchain("host") {
      current_os = current_os
    }
@@ -52,8 +52,8 @@
 +    v8_current_cpu = target_cpu
 +  }
 +}
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/build/config/linux/pkg_config.gni
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/build/config/linux/pkg_config.gni
+--- a/src/3rdparty/chromium/build/config/linux/pkg_config.gni
++++ b/src/3rdparty/chromium/build/config/linux/pkg_config.gni
 @@ -92,7 +92,7 @@ template("pkg_config") {
    assert(defined(invoker.packages),
           "Variable |packages| must be defined to be a list in pkg_config.")
diff --git a/srcpkgs/qt6-pdf/patches/0121-fc-cache-version.patch b/srcpkgs/qt6-pdf/patches/0121-fc-cache-version.patch
new file mode 100644
index 00000000000000..d8226f0b063226
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0121-fc-cache-version.patch
@@ -0,0 +1,13 @@
+instead of hardcoding the version, use the defined macro.
+--
+--- a/src/3rdparty/chromium/third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc
++++ b/src/3rdparty/chromium/third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc
+@@ -56,7 +56,7 @@ int main() {
+   FcFini();
+ 
+   // Check existence of intended fontconfig cache file.
+-  auto cache = fontconfig_caches + "/" + kCacheKey + "-le64.cache-9";
++  auto cache = fontconfig_caches + "/" + kCacheKey + "-le64.cache-" + FC_CACHE_VERSION;
+   bool cache_exists = access(cache.c_str(), F_OK) == 0;
+   return !cache_exists;
+ }
diff --git a/srcpkgs/qt6-pdf/patches/0109-chromium-aarch64-musl-memory-tagging.patch b/srcpkgs/qt6-pdf/patches/0122-fix-aarch64-musl-memory-tagging-macros.patch
similarity index 73%
rename from srcpkgs/qt6-pdf/patches/0109-chromium-aarch64-musl-memory-tagging.patch
rename to srcpkgs/qt6-pdf/patches/0122-fix-aarch64-musl-memory-tagging-macros.patch
index 0ff2a2a51aaaa8..f2d6541b26f4fc 100644
--- a/srcpkgs/qt6-pdf/patches/0109-chromium-aarch64-musl-memory-tagging.patch
+++ b/srcpkgs/qt6-pdf/patches/0122-fix-aarch64-musl-memory-tagging-macros.patch
@@ -1,6 +1,6 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/allocator/partition_allocator/tagging.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/allocator/partition_allocator/tagging.cc
-@@ -28,13 +28,25 @@
+--- a/src/3rdparty/chromium/base/allocator/partition_allocator/tagging.cc
++++ b/src/3rdparty/chromium/base/allocator/partition_allocator/tagging.cc
+@@ -29,13 +29,25 @@
  #endif
  #endif
  
@@ -25,5 +25,5 @@
 +#endif
 +#ifndef PR_MTE_TAG_MASK
  #define PR_MTE_TAG_MASK (0xffffUL << PR_MTE_TAG_SHIFT)
- #endif
+ #define HWCAP2_MTE (1 << 18)
  #endif
diff --git a/srcpkgs/qt6-pdf/patches/0123-fix-argument_spec-isnan-isinf.patch b/srcpkgs/qt6-pdf/patches/0123-fix-argument_spec-isnan-isinf.patch
new file mode 100644
index 00000000000000..d33de24fafb8e9
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0123-fix-argument_spec-isnan-isinf.patch
@@ -0,0 +1,11 @@
+--- a/src/3rdparty/chromium/extensions/renderer/bindings/argument_spec.cc
++++ b/src/3rdparty/chromium/extensions/renderer/bindings/argument_spec.cc
+@@ -2,6 +2,8 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+ 
++#include <cmath>
++
+ #include "extensions/renderer/bindings/argument_spec.h"
+ 
+ #include <cmath>
diff --git a/srcpkgs/qt6-pdf/patches/0124-fix-constexpr-narrowing.patch b/srcpkgs/qt6-pdf/patches/0124-fix-constexpr-narrowing.patch
new file mode 100644
index 00000000000000..f3e6cf051465ac
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0124-fix-constexpr-narrowing.patch
@@ -0,0 +1,21 @@
+--- a/src/3rdparty/chromium/third_party/blink/renderer/platform/media/web_media_player_impl.cc
++++ b/src/3rdparty/chromium/third_party/blink/renderer/platform/media/web_media_player_impl.cc
+@@ -3732,15 +3732,15 @@ void WebMediaPlayerImpl::WriteSplitHisto
+     const T&... values) {
+   std::string strkey = std::string(key);
+ 
+-  if constexpr (Flags & kEncrypted) {
++  if constexpr (Flags & kEncrypted != 0) {
+     if (is_encrypted_)
+       UmaFunction(strkey + ".EME", values...);
+   }
+ 
+-  if constexpr (Flags & kTotal)
++  if constexpr (Flags & kTotal != 0)
+     UmaFunction(strkey + ".All", values...);
+ 
+-  if constexpr (Flags & kPlaybackType) {
++  if constexpr (Flags & kPlaybackType != 0) {
+     auto demuxer_type = GetDemuxerType();
+     if (!demuxer_type.has_value())
+       return;
diff --git a/srcpkgs/qt6-pdf/patches/0125-fix-dawn-platform.patch b/srcpkgs/qt6-pdf/patches/0125-fix-dawn-platform.patch
new file mode 100644
index 00000000000000..85e427bbe68255
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0125-fix-dawn-platform.patch
@@ -0,0 +1,55 @@
+From f815e833c946a59620a2ca9df37a1da746f61460 Mon Sep 17 00:00:00 2001
+From: q66 <daniel@octaforge.org>
+Date: Sat, 1 Oct 2022 00:21:09 +0000
+Subject: [PATCH] fix dawn build for ppc64
+
+---
+ third_party/dawn/src/dawn/common/Assert.cpp |  4 ++--
+ third_party/dawn/src/dawn/common/Platform.h | 10 +++++-----
+ 2 files changed, 7 insertions(+), 7 deletions(-)
+
+--- a/src/3rdparty/chromium/third_party/dawn/src/dawn/common/Assert.cpp
++++ b/src/3rdparty/chromium/third_party/dawn/src/dawn/common/Assert.cpp
+@@ -39,9 +39,9 @@ void BreakPoint() {
+     __asm__ __volatile__("ebreak");
+ #elif DAWN_PLATFORM_IS(MIPS)
+     __asm__ __volatile__("break");
+-#elif DAWN_PLATFORM_IS(S390) || DAWN_PLATFORM_IS_(S390X)
++#elif DAWN_PLATFORM_IS(S390) || DAWN_PLATFORM_IS(S390X)
+     __asm__ __volatile__(".word 0x0001");
+-#elif DAWN_PLATFORM_IS(PPC) || DAWN_PLATFORM_IS_(PPC64)
++#elif DAWN_PLATFORM_IS(PPC) || DAWN_PLATFORM_IS(PPC64)
+     __asm__ __volatile__("twge 2,2");
+ #else
+ #error "Unsupported platform"
+--- a/src/3rdparty/chromium/third_party/dawn/src/dawn/common/Platform.h
++++ b/src/3rdparty/chromium/third_party/dawn/src/dawn/common/Platform.h
+@@ -140,15 +140,15 @@
+ #define DAWN_PLATFORM_IS_MIPS64 1
+ #endif
+ 
+-#elif defiend(__s390__)
++#elif defined(__s390__)
+ #define DAWN_PLATFORM_IS_S390 1
+-#elif defiend(__s390x__)
++#elif defined(__s390x__)
+ #define DAWN_PLATFORM_IS_S390X 1
+ 
+-#elif defined(__PPC__)
+-#define DAWN_PLATFORM_IS_PPC 1
+ #elif defined(__PPC64__)
+ #define DAWN_PLATFORM_IS_PPC64 1
++#elif defined(__PPC__)
++#define DAWN_PLATFORM_IS_PPC 1
+ 
+ #else
+ #error "Unsupported platform."
+@@ -166,7 +166,7 @@
+ static_assert(sizeof(sizeof(char)) == 8, "Expect sizeof(size_t) == 8");
+ #elif defined(DAWN_PLATFORM_IS_I386) || defined(DAWN_PLATFORM_IS_ARM32) ||   \
+     defined(DAWN_PLATFORM_IS_RISCV32) || defined(DAWN_PLATFORM_IS_MIPS32) || \
+-    defined(DAWN_PLATFORM_IS_S390) || defined(DAWN_PLATFORM_IS_PPC32) ||     \
++    defined(DAWN_PLATFORM_IS_S390) || defined(DAWN_PLATFORM_IS_PPC) ||     \
+     defined(DAWN_PLATFORM_IS_EMSCRIPTEN) || defined(DAWN_PLATFORM_IS_LOONGARCH32)
+ #define DAWN_PLATFORM_IS_32_BIT 1
+ static_assert(sizeof(sizeof(char)) == 4, "Expect sizeof(size_t) == 4");
diff --git a/srcpkgs/qt6-pdf/patches/0110-chromium-fix-missing-TEMP_FAILURE_RETRY-macro.patch b/srcpkgs/qt6-pdf/patches/0127-fix-missing-TEMP_FAILURE_RETRY-macro.patch
similarity index 78%
rename from srcpkgs/qt6-pdf/patches/0110-chromium-fix-missing-TEMP_FAILURE_RETRY-macro.patch
rename to srcpkgs/qt6-pdf/patches/0127-fix-missing-TEMP_FAILURE_RETRY-macro.patch
index 5558c54cf80211..6c93991a5b099f 100644
--- a/srcpkgs/qt6-pdf/patches/0110-chromium-fix-missing-TEMP_FAILURE_RETRY-macro.patch
+++ b/srcpkgs/qt6-pdf/patches/0127-fix-missing-TEMP_FAILURE_RETRY-macro.patch
@@ -1,7 +1,7 @@
 This macro is defined in glibc, but not musl.
 
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/sandbox/linux/suid/process_util.h
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/sandbox/linux/suid/process_util.h
+--- a/src/3rdparty/chromium/sandbox/linux/suid/process_util.h
++++ b/src/3rdparty/chromium/sandbox/linux/suid/process_util.h
 @@ -12,6 +12,16 @@
  #include <stdint.h>
  #include <sys/types.h>
diff --git a/srcpkgs/qt6-pdf/patches/0128-fix-missing-cstdint-include-musl.patch b/srcpkgs/qt6-pdf/patches/0128-fix-missing-cstdint-include-musl.patch
new file mode 100644
index 00000000000000..ce545be67d297d
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0128-fix-missing-cstdint-include-musl.patch
@@ -0,0 +1,10 @@
+--- a/src/3rdparty/chromium/net/third_party/quiche/src/quiche/http2/adapter/window_manager.h
++++ b/src/3rdparty/chromium/net/third_party/quiche/src/quiche/http2/adapter/window_manager.h
+@@ -4,6 +4,7 @@
+ #include <stddef.h>
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <functional>
+ 
+ #include "quiche/common/platform/api/quiche_export.h"
diff --git a/srcpkgs/qt6-pdf/patches/0129-chromium-sandbox-shed_getparam.patch b/srcpkgs/qt6-pdf/patches/0129-chromium-sandbox-shed_getparam.patch
deleted file mode 100644
index 94260d5d62eb17..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0129-chromium-sandbox-shed_getparam.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Allow SYS_sched_getparam and SYS_sched_getscheduler
-musl uses them for pthread_getschedparam()
-
---- a/src/3rdparty/chromium/sandbox/policy/linux/bpf_renderer_policy_linux.cc
-+++ b/src/3rdparty/chromium/sandbox/policy/linux/bpf_renderer_policy_linux.cc
-@@ -94,6 +94,11 @@
-     case __NR_pwrite64:
-     case __NR_sched_get_priority_max:
-     case __NR_sched_get_priority_min:
-+#ifndef __GLIBC__
-+    case __NR_sched_getparam:
-+    case __NR_sched_getscheduler:
-+    case __NR_sched_setscheduler:
-+#endif
-     case __NR_sysinfo:
-     case __NR_times:
-     case __NR_uname:
diff --git a/srcpkgs/qt6-pdf/patches/0112-chromium-unistd.h.patch b/srcpkgs/qt6-pdf/patches/0129-fix-musl-missing-unistd_h-include.patch
similarity index 94%
rename from srcpkgs/qt6-pdf/patches/0112-chromium-unistd.h.patch
rename to srcpkgs/qt6-pdf/patches/0129-fix-musl-missing-unistd_h-include.patch
index bb242a808aceaa..327874276f13e3 100644
--- a/srcpkgs/qt6-pdf/patches/0112-chromium-unistd.h.patch
+++ b/srcpkgs/qt6-pdf/patches/0129-fix-musl-missing-unistd_h-include.patch
@@ -1,6 +1,6 @@
 --- a/src/3rdparty/chromium/sandbox/linux/services/credentials.h
 +++ b/src/3rdparty/chromium/sandbox/linux/services/credentials.h
-@@ -13,6 +13,7 @@
+@@ -15,6 +15,7 @@
  
  #include <string>
  #include <vector>
diff --git a/srcpkgs/qt6-pdf/patches/0116-chromium-musl-get-thread-name.patch b/srcpkgs/qt6-pdf/patches/0130-fix-perfetto-GetThreadName-musl.patch
similarity index 73%
rename from srcpkgs/qt6-pdf/patches/0116-chromium-musl-get-thread-name.patch
rename to srcpkgs/qt6-pdf/patches/0130-fix-perfetto-GetThreadName-musl.patch
index d485385cbb629a..47dfb87f147ca7 100644
--- a/srcpkgs/qt6-pdf/patches/0116-chromium-musl-get-thread-name.patch
+++ b/srcpkgs/qt6-pdf/patches/0130-fix-perfetto-GetThreadName-musl.patch
@@ -1,5 +1,5 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/perfetto/include/perfetto/ext/base/thread_utils.h
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/perfetto/include/perfetto/ext/base/thread_utils.h
+--- a/src/3rdparty/chromium/third_party/perfetto/include/perfetto/ext/base/thread_utils.h
++++ b/src/3rdparty/chromium/third_party/perfetto/include/perfetto/ext/base/thread_utils.h
 @@ -30,7 +30,8 @@
  #include <algorithm>
  #endif
diff --git a/srcpkgs/qt6-pdf/patches/0131-fix-swiftshader-llvm-musl-config.patch b/srcpkgs/qt6-pdf/patches/0131-fix-swiftshader-llvm-musl-config.patch
new file mode 100644
index 00000000000000..e69de29bb2d1d6
diff --git a/srcpkgs/qt6-pdf/patches/0120-chromium-libc-malloc.patch b/srcpkgs/qt6-pdf/patches/0132-libc_malloc.patch
similarity index 66%
rename from srcpkgs/qt6-pdf/patches/0120-chromium-libc-malloc.patch
rename to srcpkgs/qt6-pdf/patches/0132-libc_malloc.patch
index fa32830760cdb2..0352361083d699 100644
--- a/srcpkgs/qt6-pdf/patches/0120-chromium-libc-malloc.patch
+++ b/srcpkgs/qt6-pdf/patches/0132-libc_malloc.patch
@@ -1,5 +1,5 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/process/memory_linux.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/process/memory_linux.cc
+--- a/src/3rdparty/chromium/base/process/memory_linux.cc
++++ b/src/3rdparty/chromium/base/process/memory_linux.cc
 @@ -18,6 +18,13 @@
  #include "base/threading/thread_restrictions.h"
  #include "build/build_config.h"
@@ -14,8 +14,8 @@
  namespace base {
  
  namespace {
-@@ -112,7 +119,7 @@ bool UncheckedMalloc(size_t size, void**
-     defined(TOOLKIT_QT) || !defined(LIBC_GLIBC)
+@@ -111,7 +118,7 @@ bool UncheckedMalloc(size_t size, void**
+ #elif defined(MEMORY_TOOL_REPLACES_ALLOCATOR) || !defined(LIBC_GLIBC) || defined(TOOLKIT_QT)
    *result = malloc(size);
  #elif defined(LIBC_GLIBC)
 -  *result = __libc_malloc(size);
@@ -23,7 +23,7 @@
  #endif
    return *result != nullptr;
  }
-@@ -123,7 +130,7 @@ void UncheckedFree(void* ptr) {
+@@ -122,7 +129,7 @@ void UncheckedFree(void* ptr) {
  #elif defined(MEMORY_TOOL_REPLACES_ALLOCATOR) || !defined(LIBC_GLIBC) || defined(TOOLKIT_QT)
    free(ptr);
  #elif defined(LIBC_GLIBC)
diff --git a/srcpkgs/qt6-pdf/patches/0133-musl-no-execinfo.patch b/srcpkgs/qt6-pdf/patches/0133-musl-no-execinfo.patch
new file mode 100644
index 00000000000000..3fa2dab93da01c
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0133-musl-no-execinfo.patch
@@ -0,0 +1,68 @@
+Source: https://git.alpinelinux.org/aports/plain/community/chromium/no-execinfo.patch
+musl does not have execinfo.h, and hence no implementation of
+. backtrace()
+. backtrace_symbols()
+for discussion about this, see https://www.openwall.com/lists/musl/2021/07/16/1
+--
+--- a/src/3rdparty/chromium/v8/src/codegen/external-reference-table.cc
++++ b/src/3rdparty/chromium/v8/src/codegen/external-reference-table.cc
+@@ -12,7 +12,9 @@
+ 
+ #if defined(DEBUG) && defined(V8_OS_LINUX) && !defined(V8_OS_ANDROID)
+ #define SYMBOLIZE_FUNCTION
++#if defined(__GLIBC__)
+ #include <execinfo.h>
++#endif
+ 
+ #include <vector>
+ 
+@@ -118,7 +120,7 @@ void ExternalReferenceTable::Init(Isolat
+ }
+ 
+ const char* ExternalReferenceTable::ResolveSymbol(void* address) {
+-#ifdef SYMBOLIZE_FUNCTION
++#if defined(SYMBOLIZE_FUNCTION) && defined(__GLIBC__)
+   char** names = backtrace_symbols(&address, 1);
+   const char* name = names[0];
+   // The array of names is malloc'ed. However, each name string is static
+--- a/src/3rdparty/chromium/base/debug/stack_trace.cc
++++ b/src/3rdparty/chromium/base/debug/stack_trace.cc
+@@ -273,7 +273,9 @@ void StackTrace::Print() const {
+ }
+ 
+ void StackTrace::OutputToStream(std::ostream* os) const {
++#if defined(__GLIBC__) && !defined(_AIX)
+   OutputToStreamWithPrefix(os, nullptr);
++#endif
+ }
+ 
+ std::string StackTrace::ToString() const {
+@@ -281,7 +283,7 @@ std::string StackTrace::ToString() const
+ }
+ 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();
+--- a/src/3rdparty/chromium/base/debug/stack_trace_unittest.cc
++++ b/src/3rdparty/chromium/base/debug/stack_trace_unittest.cc
+@@ -33,7 +33,7 @@ typedef MultiProcessTest StackTraceTest;
+ typedef testing::Test StackTraceTest;
+ #endif
+ 
+-#if !defined(__UCLIBC__) && !defined(_AIX)
++#if !defined(__UCLIBC__) && !defined(_AIX) && defined(__GLIBC__)
+ // StackTrace::OutputToStream() is not implemented under uclibc, nor AIX.
+ // See https://crbug.com/706728
+ 
+@@ -156,7 +156,7 @@ TEST_F(StackTraceTest, DebugOutputToStre
+ 
+ #endif  // !defined(__UCLIBC__) && !defined(_AIX)
+ 
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID)
++#if (BUILDFLAG(IS_POSIX) && defined(__GLIBC__)) && !BUILDFLAG(IS_ANDROID)
+ #if !BUILDFLAG(IS_IOS)
+ static char* newArray() {
+   // Clang warns about the mismatched new[]/delete if they occur in the same
diff --git a/srcpkgs/qt6-pdf/patches/0302-chromium-no-mallinfo.patch b/srcpkgs/qt6-pdf/patches/0134-musl-no-mallinfo.patch
similarity index 50%
rename from srcpkgs/qt6-pdf/patches/0302-chromium-no-mallinfo.patch
rename to srcpkgs/qt6-pdf/patches/0134-musl-no-mallinfo.patch
index 9f8d4a15c28e70..3ec083a830f49c 100644
--- a/srcpkgs/qt6-pdf/patches/0302-chromium-no-mallinfo.patch
+++ b/srcpkgs/qt6-pdf/patches/0134-musl-no-mallinfo.patch
@@ -1,76 +1,85 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/process/process_metrics_posix.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/process/process_metrics_posix.cc
-@@ -105,7 +105,8 @@ void IncreaseFdLimitTo(unsigned int max_
+Source: https://git.alpinelinux.org/aports/plain/community/chromium/no-mallinfo.patch
+musl does not implement mallinfo()/mallinfo2()
+(or rather, malloc-ng, musl's allocator, doesn't)
+--
+--- a/src/3rdparty/chromium/base/trace_event/malloc_dump_provider.cc
++++ b/src/3rdparty/chromium/base/trace_event/malloc_dump_provider.cc
+@@ -199,7 +199,6 @@ void ReportMallinfoStats(ProcessMemoryDu
+ #define MALLINFO2_FOUND_IN_LIBC
+   struct mallinfo2 info = mallinfo2();
+ #endif
+-#endif  // defined(__GLIBC__) && defined(__GLIBC_PREREQ)
+ #if !defined(MALLINFO2_FOUND_IN_LIBC)
+   struct mallinfo info = mallinfo();
+ #endif
+@@ -221,6 +220,7 @@ void ReportMallinfoStats(ProcessMemoryDu
+                               MemoryAllocatorDump::kUnitsBytes,
+                               total_allocated_size);
+   }
++#endif  // defined(__GLIBC__) && defined(__GLIBC_PREREQ)
+ }
+ #endif
+ 
+@@ -359,7 +359,7 @@ bool MallocDumpProvider::OnMemoryDump(co
+                      &allocated_objects_count);
+ #elif BUILDFLAG(IS_FUCHSIA)
+ // TODO(fuchsia): Port, see https://crbug.com/706592.
+-#else
++#elif defined(__GLIBC__)
+   ReportMallinfoStats(/*pmd=*/nullptr, &total_virtual_size, &resident_size,
+                       &allocated_objects_size, &allocated_objects_count);
+ #endif
+--- a/src/3rdparty/chromium/base/process/process_metrics_posix.cc
++++ b/src/3rdparty/chromium/base/process/process_metrics_posix.cc
+@@ -106,7 +106,7 @@ void IncreaseFdLimitTo(unsigned int max_
  
  #endif  // !BUILDFLAG(IS_FUCHSIA)
  
 -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
-+#if (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || \
-+	BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
  namespace {
  
  size_t GetMallocUsageMallinfo() {
-@@ -123,17 +124,18 @@ size_t GetMallocUsageMallinfo() {
+@@ -124,7 +124,7 @@ size_t GetMallocUsageMallinfo() {
  }
  
  }  // namespace
 -#endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ||
--        // BUILDFLAG(IS_ANDROID)
-+#endif  // (BUILDFLAG(IS_LINUX) && defined(__GLIBC__) ||
-+	// BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#endif  // (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS) ||
+         // BUILDFLAG(IS_ANDROID)
  
  size_t ProcessMetrics::GetMallocUsage() {
- #if BUILDFLAG(IS_APPLE)
+@@ -132,9 +132,9 @@ size_t ProcessMetrics::GetMallocUsage()
    malloc_statistics_t stats = {0};
    malloc_zone_statistics(nullptr, &stats);
    return stats.size_in_use;
 -#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
-+#elif (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || \
-+	BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
    return GetMallocUsageMallinfo();
 -#elif BUILDFLAG(IS_FUCHSIA)
-+#elif BUILDFLAG(IS_FUCHSIA) || (BUILDFLAG(IS_LINUX) && !defined(__GLIBC__))
++#else
    // TODO(fuchsia): Not currently exposed. https://crbug.com/735087.
    return 0;
  #endif
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/trace_event/malloc_dump_provider.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/trace_event/malloc_dump_provider.cc
-@@ -185,7 +185,6 @@
- #define MALLINFO2_FOUND_IN_LIBC
-   struct mallinfo2 info = mallinfo2();
- #endif
--#endif  // defined(__GLIBC__) && defined(__GLIBC_PREREQ)
- #if !defined(MALLINFO2_FOUND_IN_LIBC)
-   struct mallinfo info = mallinfo();
- #endif
-@@ -205,6 +204,7 @@
-     sys_alloc_dump->AddScalar(MemoryAllocatorDump::kNameSize,
-                               MemoryAllocatorDump::kUnitsBytes, info.uordblks);
-   }
-+#endif  // defined(__GLIBC__) && defined(__GLIBC_PREREQ)
- }
- #endif
- 
-@@ -339,7 +340,7 @@
-                      &allocated_objects_count);
- #elif BUILDFLAG(IS_FUCHSIA)
- // TODO(fuchsia): Port, see https://crbug.com/706592.
--#else
-+#elif defined(__GLIBC__)
-   ReportMallinfoStats(/*pmd=*/nullptr, &total_virtual_size, &resident_size,
-                       &allocated_objects_size, &allocated_objects_count);
- #endif
-musl does not implement mallinfo()/mallinfo2()
-(or rather, malloc-ng, musl's allocator, doesn't)
---
 --- a/src/3rdparty/chromium/base/allocator/partition_allocator/shim/allocator_shim_default_dispatch_to_partition_alloc.cc
 +++ b/src/3rdparty/chromium/base/allocator/partition_allocator/shim/allocator_shim_default_dispatch_to_partition_alloc.cc
-@@ -717,7 +717,7 @@
+@@ -736,7 +736,7 @@ SHIM_ALWAYS_EXPORT int mallopt(int cmd,
  
  #endif  // !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_ANDROID)
  
 -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if defined(__GLIBC__)
++#if 0
  SHIM_ALWAYS_EXPORT struct mallinfo mallinfo(void) __THROW {
-   base::SimplePartitionStatsDumper allocator_dumper;
+   partition_alloc::SimplePartitionStatsDumper allocator_dumper;
    Allocator()->DumpStats("malloc", true, &allocator_dumper);
+--- a/src/3rdparty/chromium/base/allocator/partition_allocator/shim/allocator_shim_default_dispatch_to_partition_alloc_unittest.cc
++++ b/src/3rdparty/chromium/base/allocator/partition_allocator/shim/allocator_shim_default_dispatch_to_partition_alloc_unittest.cc
+@@ -24,7 +24,7 @@ namespace allocator_shim::internal {
+ #if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC)
+ 
+ // Platforms on which we override weak libc symbols.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS)
+ 
+ PA_NOINLINE void FreeForTest(void* data) {
+   free(data);
diff --git a/srcpkgs/qt6-pdf/patches/0135-musl-partition-atfork.patch b/srcpkgs/qt6-pdf/patches/0135-musl-partition-atfork.patch
new file mode 100644
index 00000000000000..1d838142146c78
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0135-musl-partition-atfork.patch
@@ -0,0 +1,11 @@
+--- a/src/3rdparty/chromium/base/allocator/partition_allocator/partition_root.cc
++++ b/src/3rdparty/chromium/base/allocator/partition_allocator/partition_root.cc
+@@ -281,7 +281,7 @@ void PartitionAllocMallocInitOnce() {
+     return;
+   }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS)
+   // When fork() is called, only the current thread continues to execute in the
+   // child process. If the lock is held, but *not* by this thread when fork() is
+   // called, we have a deadlock.
diff --git a/srcpkgs/qt6-pdf/patches/0122-chromium-condition_var.patch b/srcpkgs/qt6-pdf/patches/0136-musl-v8-monotonic-pthread-cont_timedwait.patch
similarity index 82%
rename from srcpkgs/qt6-pdf/patches/0122-chromium-condition_var.patch
rename to srcpkgs/qt6-pdf/patches/0136-musl-v8-monotonic-pthread-cont_timedwait.patch
index 6c41312e516b3a..1dc8bc4d3d17ff 100644
--- a/srcpkgs/qt6-pdf/patches/0122-chromium-condition_var.patch
+++ b/srcpkgs/qt6-pdf/patches/0136-musl-v8-monotonic-pthread-cont_timedwait.patch
@@ -1,7 +1,7 @@
 Use monotonic clock for pthread_cond_timedwait with musl too.
 
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/v8/src/base/platform/condition-variable.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/v8/src/base/platform/condition-variable.cc
+--- a/src/3rdparty/chromium/v8/src/base/platform/condition-variable.cc
++++ b/src/3rdparty/chromium/v8/src/base/platform/condition-variable.cc
 @@ -20,7 +20,7 @@ namespace base {
  
  ConditionVariable::ConditionVariable() {
diff --git a/srcpkgs/qt6-pdf/patches/0123-chromium-musl-no-getcontext.patch b/srcpkgs/qt6-pdf/patches/0137-no-getcontext.patch
similarity index 72%
rename from srcpkgs/qt6-pdf/patches/0123-chromium-musl-no-getcontext.patch
rename to srcpkgs/qt6-pdf/patches/0137-no-getcontext.patch
index 46522ee0a066d7..fc419db67de0b9 100644
--- a/srcpkgs/qt6-pdf/patches/0123-chromium-musl-no-getcontext.patch
+++ b/srcpkgs/qt6-pdf/patches/0137-no-getcontext.patch
@@ -1,5 +1,5 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
+--- a/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
++++ b/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
 @@ -490,7 +490,9 @@ bool ExceptionHandler::SimulateSignalDel
    siginfo.si_code = SI_USER;
    siginfo.si_pid = getpid();
diff --git a/srcpkgs/qt6-pdf/patches/0138-no-mte.patch b/srcpkgs/qt6-pdf/patches/0138-no-mte.patch
new file mode 100644
index 00000000000000..074a518d6cf926
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0138-no-mte.patch
@@ -0,0 +1,11 @@
+--- a/src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_config.h
++++ b/src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_config.h
+@@ -153,7 +153,7 @@ static_assert(sizeof(void*) != 8, "");
+    defined(ARCH_CPU_LITTLE_ENDIAN))
+ 
+ #define PA_CONFIG_HAS_MEMORY_TAGGING()              \
+-  (defined(ARCH_CPU_ARM64) && defined(__clang__) && \
++  (0 && defined(ARCH_CPU_ARM64) && defined(__clang__) && \
+    !defined(ADDRESS_SANITIZER) &&                   \
+    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID)))
+ 
diff --git a/srcpkgs/qt6-pdf/patches/0139-old-clang.patch b/srcpkgs/qt6-pdf/patches/0139-old-clang.patch
new file mode 100644
index 00000000000000..4300abdea956e9
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0139-old-clang.patch
@@ -0,0 +1,11 @@
+--- a/src/3rdparty/chromium/build/config/compiler/BUILD.gn
++++ b/src/3rdparty/chromium/build/config/compiler/BUILD.gn
+@@ -1543,7 +1543,7 @@ config("compiler_deterministic") {
+     } else {
+       # -ffile-compilation-dir is an alias for both -fdebug-compilation-dir=
+       # and -fcoverage-compilation-dir=.
+-      cflags += [ "-ffile-compilation-dir=." ]
++      cflags += [ "-fdebug-compilation-dir=." ]
+       swiftflags += [ "-file-compilation-dir=." ]
+     }
+     if (!is_win) {
diff --git a/srcpkgs/qt6-pdf/patches/0140-reenable-linux-i686-builds.patch b/srcpkgs/qt6-pdf/patches/0140-reenable-linux-i686-builds.patch
new file mode 100644
index 00000000000000..47ff59a75bc42e
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0140-reenable-linux-i686-builds.patch
@@ -0,0 +1,19 @@
+--- a/src/3rdparty/chromium/BUILD.gn
++++ b/src/3rdparty/chromium/BUILD.gn
+@@ -1626,16 +1626,6 @@ if (use_blink && !is_cronet_build) {
+   }
+ }
+ 
+-# TODO(cassew): Add more OS's that don't support x86.
+-is_valid_x86_target =
+-    target_os != "ios" && target_os != "mac" &&
+-    (target_os != "linux" || use_libfuzzer || !build_with_chromium)
+-
+-# Note: v8_target_cpu == arm allows using the V8 arm simulator on x86 for fuzzing.
+-assert(
+-    is_valid_x86_target || target_cpu != "x86" || v8_target_cpu == "arm",
+-    "'target_cpu=x86' is not supported for 'target_os=$target_os'. Consider omitting 'target_cpu' (default) or using 'target_cpu=x64' instead.")
+-
+ group("chromium_builder_perf") {
+   testonly = true
+ 
diff --git a/srcpkgs/qt6-pdf/patches/0126-chromium-no-cdefs.patch b/srcpkgs/qt6-pdf/patches/0141-remove-sys-cdefs-includes.patch
similarity index 65%
rename from srcpkgs/qt6-pdf/patches/0126-chromium-no-cdefs.patch
rename to srcpkgs/qt6-pdf/patches/0141-remove-sys-cdefs-includes.patch
index 90faa3d664d02d..8d1c06e0dfa03c 100644
--- a/srcpkgs/qt6-pdf/patches/0126-chromium-no-cdefs.patch
+++ b/srcpkgs/qt6-pdf/patches/0141-remove-sys-cdefs-includes.patch
@@ -1,5 +1,5 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h
+--- a/src/3rdparty/chromium/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h
++++ b/src/3rdparty/chromium/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h
 @@ -17,8 +17,6 @@
  
  #include_next <sys/ptrace.h>
@@ -9,8 +9,8 @@
  // https://sourceware.org/bugzilla/show_bug.cgi?id=22433
  #if !defined(PTRACE_GET_THREAD_AREA) && !defined(PT_GET_THREAD_AREA) && \
      defined(__GLIBC__)
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/libsync/src/include/sync/sync.h
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/libsync/src/include/sync/sync.h
+--- a/src/3rdparty/chromium/third_party/libsync/src/include/sync/sync.h
++++ b/src/3rdparty/chromium/third_party/libsync/src/include/sync/sync.h
 @@ -19,12 +19,13 @@
  #ifndef __SYS_CORE_SYNC_H
  #define __SYS_CORE_SYNC_H
diff --git a/srcpkgs/qt6-pdf/patches/0142-sandbox-membarrier.patch b/srcpkgs/qt6-pdf/patches/0142-sandbox-membarrier.patch
new file mode 100644
index 00000000000000..47bcbf1de190e7
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0142-sandbox-membarrier.patch
@@ -0,0 +1,10 @@
+--- a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
++++ b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
+@@ -433,6 +433,7 @@ bool SyscallSets::IsAllowedProcessStartO
+   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-pdf/patches/0143-sndio.patch b/srcpkgs/qt6-pdf/patches/0143-sndio.patch
new file mode 100644
index 00000000000000..1e6dcac8d5a9bd
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0143-sndio.patch
@@ -0,0 +1,849 @@
+--- a/src/3rdparty/chromium/media/BUILD.gn
++++ b/src/3rdparty/chromium/media/BUILD.gn
+@@ -96,6 +96,9 @@ config("media_config") {
+       defines += [ "DLOPEN_PULSEAUDIO" ]
+     }
+   }
++  if (use_sndio) {
++    defines += [ "USE_SNDIO" ]
++  }
+   if (use_cras) {
+     defines += [ "USE_CRAS" ]
+   }
+--- a/src/3rdparty/chromium/media/audio/BUILD.gn
++++ b/src/3rdparty/chromium/media/audio/BUILD.gn
+@@ -282,6 +282,17 @@ jumbo_source_set("audio") {
+     sources += [ "linux/audio_manager_linux.cc" ]
+   }
+ 
++  if (use_sndio) {
++    libs += [ "sndio" ]
++    sources += [
++      "sndio/audio_manager_sndio.cc",
++      "sndio/sndio_input.cc",
++      "sndio/sndio_input.h",
++      "sndio/sndio_output.cc",
++      "sndio/sndio_output.h"
++    ]
++  }
++
+   if (use_alsa) {
+     libs += [ "asound" ]
+     sources += [
+--- a/src/3rdparty/chromium/media/audio/linux/audio_manager_linux.cc
++++ b/src/3rdparty/chromium/media/audio/linux/audio_manager_linux.cc
+@@ -23,6 +23,11 @@
+ #include "media/audio/pulse/audio_manager_pulse.h"
+ #include "media/audio/pulse/pulse_util.h"
+ #endif
++#if defined(USE_SNDIO)
++#include "media/audio/sndio/audio_manager_sndio.h"
++#include "media/audio/sndio/sndio_input.h"
++#include "media/audio/sndio/sndio_output.h"
++#endif
+ 
+ namespace media {
+ 
+--- /dev/null
++++ b/src/3rdparty/chromium/media/audio/sndio/audio_manager_sndio.cc
+@@ -0,0 +1,148 @@
++// Copyright (c) 2012 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "media/audio/sndio/audio_manager_sndio.h"
++
++#include "base/metrics/histogram_macros.h"
++#include "base/memory/ptr_util.h"
++#include "media/audio/audio_device_description.h"
++#include "media/audio/audio_output_dispatcher.h"
++#include "media/audio/sndio/sndio_input.h"
++#include "media/audio/sndio/sndio_output.h"
++#include "media/base/limits.h"
++#include "media/base/media_switches.h"
++
++namespace media {
++
++
++// Maximum number of output streams that can be open simultaneously.
++static const int kMaxOutputStreams = 4;
++
++// Default sample rate for input and output streams.
++static const int kDefaultSampleRate = 48000;
++
++void AddDefaultDevice(AudioDeviceNames* device_names) {
++  DCHECK(device_names->empty());
++  device_names->push_front(AudioDeviceName::CreateDefault());
++}
++
++bool AudioManagerSndio::HasAudioOutputDevices() {
++  return true;
++}
++
++bool AudioManagerSndio::HasAudioInputDevices() {
++  return true;
++}
++
++void AudioManagerSndio::GetAudioInputDeviceNames(
++    AudioDeviceNames* device_names) {
++  DCHECK(device_names->empty());
++  AddDefaultDevice(device_names);
++}
++
++void AudioManagerSndio::GetAudioOutputDeviceNames(
++    AudioDeviceNames* device_names) {
++  AddDefaultDevice(device_names);
++}
++
++const char* AudioManagerSndio::GetName() {
++  return "SNDIO";
++}
++
++AudioParameters AudioManagerSndio::GetInputStreamParameters(
++    const std::string& device_id) {
++  static const int kDefaultInputBufferSize = 1024;
++
++  int user_buffer_size = GetUserBufferSize();
++  int buffer_size = user_buffer_size ?
++      user_buffer_size : kDefaultInputBufferSize;
++
++  return AudioParameters(
++      AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO,
++      kDefaultSampleRate, buffer_size);
++}
++
++AudioManagerSndio::AudioManagerSndio(std::unique_ptr<AudioThread> audio_thread,
++                                         AudioLogFactory* audio_log_factory)
++    : AudioManagerBase(std::move(audio_thread),
++                       audio_log_factory) {
++  DLOG(WARNING) << "AudioManagerSndio";
++  SetMaxOutputStreamsAllowed(kMaxOutputStreams);
++}
++
++AudioManagerSndio::~AudioManagerSndio() {
++  Shutdown();
++}
++
++AudioOutputStream* AudioManagerSndio::MakeLinearOutputStream(
++    const AudioParameters& params,
++    const LogCallback& log_callback) {
++  DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format());
++  return MakeOutputStream(params);
++}
++
++AudioOutputStream* AudioManagerSndio::MakeLowLatencyOutputStream(
++    const AudioParameters& params,
++    const std::string& device_id,
++    const LogCallback& log_callback) {
++  DLOG_IF(ERROR, !device_id.empty()) << "Not implemented!";
++  DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format());
++  return MakeOutputStream(params);
++}
++
++AudioInputStream* AudioManagerSndio::MakeLinearInputStream(
++    const AudioParameters& params,
++    const std::string& device_id,
++    const LogCallback& log_callback) {
++  DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format());
++  return MakeInputStream(params);
++}
++
++AudioInputStream* AudioManagerSndio::MakeLowLatencyInputStream(
++    const AudioParameters& params,
++    const std::string& device_id,
++    const LogCallback& log_callback) {
++  DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format());
++  return MakeInputStream(params);
++}
++
++AudioParameters AudioManagerSndio::GetPreferredOutputStreamParameters(
++    const std::string& output_device_id,
++    const AudioParameters& input_params) {
++  // TODO(tommi): Support |output_device_id|.
++  DLOG_IF(ERROR, !output_device_id.empty()) << "Not implemented!";
++  static const int kDefaultOutputBufferSize = 2048;
++
++  ChannelLayout channel_layout = CHANNEL_LAYOUT_STEREO;
++  int sample_rate = kDefaultSampleRate;
++  int buffer_size = kDefaultOutputBufferSize;
++  if (input_params.IsValid()) {
++    sample_rate = input_params.sample_rate();
++    channel_layout = input_params.channel_layout();
++    buffer_size = std::min(buffer_size, input_params.frames_per_buffer());
++  }
++
++  int user_buffer_size = GetUserBufferSize();
++  if (user_buffer_size)
++    buffer_size = user_buffer_size;
++
++  return AudioParameters(
++      AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout,
++      sample_rate, buffer_size);
++}
++
++AudioInputStream* AudioManagerSndio::MakeInputStream(
++    const AudioParameters& params) {
++  DLOG(WARNING) << "MakeInputStream";
++  return new SndioAudioInputStream(this,
++             AudioDeviceDescription::kDefaultDeviceId, params);
++}
++
++AudioOutputStream* AudioManagerSndio::MakeOutputStream(
++    const AudioParameters& params) {
++  DLOG(WARNING) << "MakeOutputStream";
++  return new SndioAudioOutputStream(params, this);
++}
++
++}  // namespace media
+--- /dev/null
++++ b/src/3rdparty/chromium/media/audio/sndio/audio_manager_sndio.h
+@@ -0,0 +1,65 @@
++// Copyright (c) 2012 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef MEDIA_AUDIO_SNDIO_AUDIO_MANAGER_SNDIO_H_
++#define MEDIA_AUDIO_SNDIO_AUDIO_MANAGER_SNDIO_H_
++
++#include <set>
++
++#include "base/compiler_specific.h"
++#include "base/macros.h"
++#include "base/memory/ref_counted.h"
++#include "base/threading/thread.h"
++#include "media/audio/audio_manager_base.h"
++
++namespace media {
++
++class MEDIA_EXPORT AudioManagerSndio : public AudioManagerBase {
++ public:
++  AudioManagerSndio(std::unique_ptr<AudioThread> audio_thread,
++                   AudioLogFactory* audio_log_factory);
++  ~AudioManagerSndio() override;
++
++  // Implementation of AudioManager.
++  bool HasAudioOutputDevices() override;
++  bool HasAudioInputDevices() override;
++  void GetAudioInputDeviceNames(AudioDeviceNames* device_names) override;
++  void GetAudioOutputDeviceNames(AudioDeviceNames* device_names) override;
++  AudioParameters GetInputStreamParameters(
++      const std::string& device_id) override;
++  const char* GetName() override;
++
++  // Implementation of AudioManagerBase.
++  AudioOutputStream* MakeLinearOutputStream(
++      const AudioParameters& params,
++      const LogCallback& log_callback) override;
++  AudioOutputStream* MakeLowLatencyOutputStream(
++      const AudioParameters& params,
++      const std::string& device_id,
++      const LogCallback& log_callback) override;
++  AudioInputStream* MakeLinearInputStream(
++      const AudioParameters& params,
++      const std::string& device_id,
++      const LogCallback& log_callback) override;
++  AudioInputStream* MakeLowLatencyInputStream(
++      const AudioParameters& params,
++      const std::string& device_id,
++      const LogCallback& log_callback) override;
++
++ protected:
++  AudioParameters GetPreferredOutputStreamParameters(
++      const std::string& output_device_id,
++      const AudioParameters& input_params) override;
++
++ private:
++  // Called by MakeLinearOutputStream and MakeLowLatencyOutputStream.
++  AudioOutputStream* MakeOutputStream(const AudioParameters& params);
++  AudioInputStream* MakeInputStream(const AudioParameters& params);
++
++  DISALLOW_COPY_AND_ASSIGN(AudioManagerSndio);
++};
++
++}  // namespace media
++
++#endif  // MEDIA_AUDIO_SNDIO_AUDIO_MANAGER_SNDIO_H_
+--- /dev/null
++++ b/src/3rdparty/chromium/media/audio/sndio/sndio_input.cc
+@@ -0,0 +1,200 @@
++// Copyright 2013 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "base/bind.h"
++#include "base/logging.h"
++#include "base/macros.h"
++#include "media/base/audio_timestamp_helper.h"
++#include "media/audio/sndio/audio_manager_sndio.h"
++#include "media/audio/audio_manager.h"
++#include "media/audio/sndio/sndio_input.h"
++
++namespace media {
++
++static const SampleFormat kSampleFormat = kSampleFormatS16;
++
++void SndioAudioInputStream::OnMoveCallback(void *arg, int delta)
++{
++  SndioAudioInputStream* self = static_cast<SndioAudioInputStream*>(arg);
++
++  self->hw_delay += delta;
++}
++
++void *SndioAudioInputStream::ThreadEntry(void *arg) {
++  SndioAudioInputStream* self = static_cast<SndioAudioInputStream*>(arg);
++
++  self->ThreadLoop();
++  return NULL;
++}
++
++SndioAudioInputStream::SndioAudioInputStream(AudioManagerBase* manager,
++                                             const std::string& device_name,
++                                             const AudioParameters& params)
++    : manager(manager),
++      params(params),
++      audio_bus(AudioBus::Create(params)),
++      state(kClosed) {
++}
++
++SndioAudioInputStream::~SndioAudioInputStream() {
++  if (state != kClosed)
++    Close();
++}
++
++bool SndioAudioInputStream::Open() {
++  struct sio_par par;
++  int sig;
++
++  if (state != kClosed)
++    return false;
++
++  if (params.format() != AudioParameters::AUDIO_PCM_LINEAR &&
++      params.format() != AudioParameters::AUDIO_PCM_LOW_LATENCY) {
++    LOG(WARNING) << "Unsupported audio format.";
++    return false;
++  }
++
++  sio_initpar(&par);
++  par.rate = params.sample_rate();
++  par.rchan = params.channels();
++  par.bits = SampleFormatToBitsPerChannel(kSampleFormat);
++  par.bps = par.bits / 8;
++  par.sig = sig = par.bits != 8 ? 1 : 0;
++  par.le = SIO_LE_NATIVE;
++  par.appbufsz = params.frames_per_buffer();
++
++  hdl = sio_open(SIO_DEVANY, SIO_REC, 0);
++
++  if (hdl == NULL) {
++    LOG(ERROR) << "Couldn't open audio device.";
++    return false;
++  }
++
++  if (!sio_setpar(hdl, &par) || !sio_getpar(hdl, &par)) {
++    LOG(ERROR) << "Couldn't set audio parameters.";
++    goto bad_close;
++  }
++
++  if (par.rate  != (unsigned int)params.sample_rate() ||
++      par.rchan != (unsigned int)params.channels() ||
++      par.bits  != (unsigned int)SampleFormatToBitsPerChannel(kSampleFormat) ||
++      par.sig   != (unsigned int)sig ||
++      (par.bps > 1 && par.le != SIO_LE_NATIVE) ||
++      (par.bits != par.bps * 8)) {
++    LOG(ERROR) << "Unsupported audio parameters.";
++    goto bad_close;
++  }
++  state = kStopped;
++  buffer = new char[audio_bus->frames() * params.GetBytesPerFrame(kSampleFormat)];
++  sio_onmove(hdl, &OnMoveCallback, this);
++  return true;
++bad_close:
++  sio_close(hdl);
++  return false;
++}
++
++void SndioAudioInputStream::Start(AudioInputCallback* cb) {
++
++  StartAgc();
++
++  state = kRunning;
++  hw_delay = 0;
++  callback = cb;
++  sio_start(hdl);
++  if (pthread_create(&thread, NULL, &ThreadEntry, this) != 0) {
++    LOG(ERROR) << "Failed to create real-time thread for recording.";
++    sio_stop(hdl);
++    state = kStopped;
++  }
++}
++
++void SndioAudioInputStream::Stop() {
++
++  if (state == kStopped)
++    return;
++
++  state = kStopWait;
++  pthread_join(thread, NULL);
++  sio_stop(hdl);
++  state = kStopped;
++
++  StopAgc();
++}
++
++void SndioAudioInputStream::Close() {
++
++  if (state == kClosed)
++    return;
++
++  if (state == kRunning)
++    Stop();
++
++  state = kClosed;
++  delete [] buffer;
++  sio_close(hdl);
++
++  manager->ReleaseInputStream(this);
++}
++
++double SndioAudioInputStream::GetMaxVolume() {
++  // Not supported
++  return 0.0;
++}
++
++void SndioAudioInputStream::SetVolume(double volume) {
++  // Not supported. Do nothing.
++}
++
++double SndioAudioInputStream::GetVolume() {
++  // Not supported.
++  return 0.0;
++}
++
++bool SndioAudioInputStream::IsMuted() {
++  // Not supported.
++  return false;
++}
++
++void SndioAudioInputStream::SetOutputDeviceForAec(
++    const std::string& output_device_id) {
++  // Not supported.
++}
++
++void SndioAudioInputStream::ThreadLoop(void) {
++  size_t todo, n;
++  char *data;
++  unsigned int nframes;
++  double normalized_volume = 0.0;
++
++  nframes = audio_bus->frames();
++
++  while (state == kRunning && !sio_eof(hdl)) {
++
++    GetAgcVolume(&normalized_volume);
++
++    // read one block
++    todo = nframes * params.GetBytesPerFrame(kSampleFormat);
++    data = buffer;
++    while (todo > 0) {
++      n = sio_read(hdl, data, todo);
++      if (n == 0)
++        return;	// unrecoverable I/O error
++      todo -= n;
++      data += n;
++    }
++    hw_delay -= nframes;
++
++    // convert frames count to TimeDelta
++    const base::TimeDelta delay = AudioTimestampHelper::FramesToTime(hw_delay,
++      params.sample_rate());
++
++    // push into bus
++    audio_bus->FromInterleaved<SignedInt16SampleTypeTraits>(reinterpret_cast<int16_t*>(buffer), nframes);
++
++    // invoke callback
++    callback->OnData(audio_bus.get(), base::TimeTicks::Now() - delay, 1.);
++  }
++}
++
++}  // namespace media
+--- /dev/null
++++ b/src/3rdparty/chromium/media/audio/sndio/sndio_input.h
+@@ -0,0 +1,91 @@
++// Copyright 2013 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef MEDIA_AUDIO_SNDIO_SNDIO_INPUT_H_
++#define MEDIA_AUDIO_SNDIO_SNDIO_INPUT_H_
++
++#include <stdint.h>
++#include <string>
++#include <sndio.h>
++
++#include "base/compiler_specific.h"
++#include "base/macros.h"
++#include "base/memory/weak_ptr.h"
++#include "base/time/time.h"
++#include "media/audio/agc_audio_stream.h"
++#include "media/audio/audio_io.h"
++#include "media/audio/audio_device_description.h"
++#include "media/base/audio_parameters.h"
++
++namespace media {
++
++class AudioManagerBase;
++
++// Implementation of AudioOutputStream using sndio(7)
++class SndioAudioInputStream : public AgcAudioStream<AudioInputStream> {
++ public:
++  // Pass this to the constructor if you want to attempt auto-selection
++  // of the audio recording device.
++  static const char kAutoSelectDevice[];
++
++  // Create a PCM Output stream for the SNDIO device identified by
++  // |device_name|. If unsure of what to use for |device_name|, use
++  // |kAutoSelectDevice|.
++  SndioAudioInputStream(AudioManagerBase* audio_manager,
++                     const std::string& device_name,
++                     const AudioParameters& params);
++
++  ~SndioAudioInputStream() override;
++
++  // Implementation of AudioInputStream.
++  bool Open() override;
++  void Start(AudioInputCallback* callback) override;
++  void Stop() override;
++  void Close() override;
++  double GetMaxVolume() override;
++  void SetVolume(double volume) override;
++  double GetVolume() override;
++  bool IsMuted() override;
++  void SetOutputDeviceForAec(const std::string& output_device_id) override;
++
++ private:
++
++  enum StreamState {
++    kClosed,            // Not opened yet
++    kStopped,           // Device opened, but not started yet
++    kRunning,           // Started, device playing
++    kStopWait           // Stopping, waiting for the real-time thread to exit
++  };
++
++  // C-style call-backs
++  static void OnMoveCallback(void *arg, int delta);
++  static void* ThreadEntry(void *arg);
++
++  // Continuously moves data from the device to the consumer
++  void ThreadLoop();
++  // Our creator, the audio manager needs to be notified when we close.
++  AudioManagerBase* manager;
++  // Parameters of the source
++  AudioParameters params;
++  // We store data here for consumer
++  std::unique_ptr<AudioBus> audio_bus;
++  // Call-back that consumes recorded data
++  AudioInputCallback* callback;  // Valid during a recording session.
++  // Handle of the audio device
++  struct sio_hdl* hdl;
++  // Current state of the stream
++  enum StreamState state;
++  // High priority thread running ThreadLoop()
++  pthread_t thread;
++  // Number of frames buffered in the hardware
++  int hw_delay;
++  // Temporary buffer where data is stored sndio-compatible format
++  char* buffer;
++
++  DISALLOW_COPY_AND_ASSIGN(SndioAudioInputStream);
++};
++
++}  // namespace media
++
++#endif  // MEDIA_AUDIO_SNDIO_SNDIO_INPUT_H_
+--- /dev/null
++++ b/src/3rdparty/chromium/media/audio/sndio/sndio_output.cc
+@@ -0,0 +1,183 @@
++// Copyright (c) 2012 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "base/logging.h"
++#include "base/time/time.h"
++#include "base/time/default_tick_clock.h"
++#include "media/audio/audio_manager_base.h"
++#include "media/base/audio_timestamp_helper.h"
++#include "media/audio/sndio/sndio_output.h"
++
++namespace media {
++
++static const SampleFormat kSampleFormat = kSampleFormatS16;
++
++void SndioAudioOutputStream::OnMoveCallback(void *arg, int delta) {
++  SndioAudioOutputStream* self = static_cast<SndioAudioOutputStream*>(arg);
++
++  self->hw_delay -= delta;
++}
++
++void SndioAudioOutputStream::OnVolCallback(void *arg, unsigned int vol) {
++  SndioAudioOutputStream* self = static_cast<SndioAudioOutputStream*>(arg);
++
++  self->vol = vol;
++}
++
++void *SndioAudioOutputStream::ThreadEntry(void *arg) {
++  SndioAudioOutputStream* self = static_cast<SndioAudioOutputStream*>(arg);
++
++  self->ThreadLoop();
++  return NULL;
++}
++
++SndioAudioOutputStream::SndioAudioOutputStream(const AudioParameters& params,
++                                               AudioManagerBase* manager)
++    : manager(manager),
++      params(params),
++      audio_bus(AudioBus::Create(params)),
++      state(kClosed),
++      mutex(PTHREAD_MUTEX_INITIALIZER) {
++}
++
++SndioAudioOutputStream::~SndioAudioOutputStream() {
++  if (state != kClosed)
++    Close();
++}
++
++bool SndioAudioOutputStream::Open() {
++  struct sio_par par;
++  int sig;
++
++  if (params.format() != AudioParameters::AUDIO_PCM_LINEAR &&
++      params.format() != AudioParameters::AUDIO_PCM_LOW_LATENCY) {
++    LOG(WARNING) << "Unsupported audio format.";
++    return false;
++  }
++  sio_initpar(&par);
++  par.rate = params.sample_rate();
++  par.pchan = params.channels();
++  par.bits = SampleFormatToBitsPerChannel(kSampleFormat);
++  par.bps = par.bits / 8;
++  par.sig = sig = par.bits != 8 ? 1 : 0;
++  par.le = SIO_LE_NATIVE;
++  par.appbufsz = params.frames_per_buffer();
++
++  hdl = sio_open(SIO_DEVANY, SIO_PLAY, 0);
++  if (hdl == NULL) {
++    LOG(ERROR) << "Couldn't open audio device.";
++    return false;
++  }
++  if (!sio_setpar(hdl, &par) || !sio_getpar(hdl, &par)) {
++    LOG(ERROR) << "Couldn't set audio parameters.";
++    goto bad_close;
++  }
++  if (par.rate  != (unsigned int)params.sample_rate() ||
++      par.pchan != (unsigned int)params.channels() ||
++      par.bits  != (unsigned int)SampleFormatToBitsPerChannel(kSampleFormat) ||
++      par.sig   != (unsigned int)sig ||
++      (par.bps > 1 && par.le != SIO_LE_NATIVE) ||
++      (par.bits != par.bps * 8)) {
++    LOG(ERROR) << "Unsupported audio parameters.";
++    goto bad_close;
++  }
++  state = kStopped;
++  volpending = 0;
++  vol = 0;
++  buffer = new char[audio_bus->frames() * params.GetBytesPerFrame(kSampleFormat)];
++  sio_onmove(hdl, &OnMoveCallback, this);
++  sio_onvol(hdl, &OnVolCallback, this);
++  return true;
++ bad_close:
++  sio_close(hdl);
++  return false;
++}
++
++void SndioAudioOutputStream::Close() {
++  if (state == kClosed)
++    return;
++  if (state == kRunning)
++    Stop();
++  state = kClosed;
++  delete [] buffer;
++  sio_close(hdl);
++  manager->ReleaseOutputStream(this);  // Calls the destructor
++}
++
++void SndioAudioOutputStream::Start(AudioSourceCallback* callback) {
++  state = kRunning;
++  hw_delay = 0;
++  source = callback;
++  sio_start(hdl);
++  if (pthread_create(&thread, NULL, &ThreadEntry, this) != 0) {
++    LOG(ERROR) << "Failed to create real-time thread.";
++    sio_stop(hdl);
++    state = kStopped;
++  }
++}
++
++void SndioAudioOutputStream::Stop() {
++  if (state == kStopped)
++    return;
++  state = kStopWait;
++  pthread_join(thread, NULL);
++  sio_stop(hdl);
++  state = kStopped;
++}
++
++void SndioAudioOutputStream::SetVolume(double v) {
++  pthread_mutex_lock(&mutex);
++  vol = v * SIO_MAXVOL;
++  volpending = 1;
++  pthread_mutex_unlock(&mutex);
++}
++
++void SndioAudioOutputStream::GetVolume(double* v) {
++  pthread_mutex_lock(&mutex);
++  *v = vol * (1. / SIO_MAXVOL);
++  pthread_mutex_unlock(&mutex);
++}
++
++// This stream is always used with sub second buffer sizes, where it's
++// sufficient to simply always flush upon Start().
++void SndioAudioOutputStream::Flush() {}
++
++void SndioAudioOutputStream::ThreadLoop(void) {
++  int avail, count, result;
++
++  while (state == kRunning) {
++    // Update volume if needed
++    pthread_mutex_lock(&mutex);
++    if (volpending) {
++      volpending = 0;
++      sio_setvol(hdl, vol);
++    }
++    pthread_mutex_unlock(&mutex);
++
++    // Get data to play
++    const base::TimeDelta delay = AudioTimestampHelper::FramesToTime(hw_delay,
++	params.sample_rate());
++    count = source->OnMoreData(delay, base::TimeTicks::Now(), 0, audio_bus.get());
++    audio_bus->ToInterleaved<SignedInt16SampleTypeTraits>(count, reinterpret_cast<int16_t*>(buffer));
++    if (count == 0) {
++      // We have to submit something to the device
++      count = audio_bus->frames();
++      memset(buffer, 0, count * params.GetBytesPerFrame(kSampleFormat));
++      LOG(WARNING) << "No data to play, running empty cycle.";
++    }
++
++    // Submit data to the device
++    avail = count * params.GetBytesPerFrame(kSampleFormat);
++    result = sio_write(hdl, buffer, avail);
++    if (result == 0) {
++      LOG(WARNING) << "Audio device disconnected.";
++      break;
++    }
++
++    // Update hardware pointer
++    hw_delay += count;
++  }
++}
++
++}  // namespace media
+--- /dev/null
++++ b/src/3rdparty/chromium/media/audio/sndio/sndio_output.h
+@@ -0,0 +1,86 @@
++// Copyright (c) 2012 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef MEDIA_AUDIO_SNDIO_SNDIO_OUTPUT_H_
++#define MEDIA_AUDIO_SNDIO_SNDIO_OUTPUT_H_
++
++#include <pthread.h>
++#include <sndio.h>
++
++#include "base/time/tick_clock.h"
++#include "base/time/time.h"
++#include "media/audio/audio_io.h"
++
++namespace media {
++
++class AudioManagerBase;
++
++// Implementation of AudioOutputStream using sndio(7)
++class SndioAudioOutputStream : public AudioOutputStream {
++ public:
++  // The manager is creating this object
++  SndioAudioOutputStream(const AudioParameters& params,
++                         AudioManagerBase* manager);
++  virtual ~SndioAudioOutputStream();
++
++  // Implementation of AudioOutputStream.
++  bool Open() override;
++  void Close() override;
++  void Start(AudioSourceCallback* callback) override;
++  void Stop() override;
++  void SetVolume(double volume) override;
++  void GetVolume(double* volume) override;
++  void Flush() override;
++
++  friend void sndio_onmove(void *arg, int delta);
++  friend void sndio_onvol(void *arg, unsigned int vol);
++  friend void *sndio_threadstart(void *arg);
++
++ private:
++  enum StreamState {
++    kClosed,            // Not opened yet
++    kStopped,           // Device opened, but not started yet
++    kRunning,           // Started, device playing
++    kStopWait           // Stopping, waiting for the real-time thread to exit
++  };
++
++  // C-style call-backs
++  static void OnMoveCallback(void *arg, int delta);
++  static void OnVolCallback(void *arg, unsigned int vol);
++  static void* ThreadEntry(void *arg);
++
++  // Continuously moves data from the producer to the device
++  void ThreadLoop(void);
++
++  // Our creator, the audio manager needs to be notified when we close.
++  AudioManagerBase* manager;
++  // Parameters of the source
++  AudioParameters params;
++  // Source stores data here
++  std::unique_ptr<AudioBus> audio_bus;
++  // Call-back that produces data to play
++  AudioSourceCallback* source;
++  // Handle of the audio device
++  struct sio_hdl* hdl;
++  // Current state of the stream
++  enum StreamState state;
++  // High priority thread running ThreadLoop()
++  pthread_t thread;
++  // Protects vol, volpending and hw_delay
++  pthread_mutex_t mutex;
++  // Current volume in the 0..SIO_MAXVOL range
++  int vol;
++  // Set to 1 if volumes must be refreshed in the realtime thread
++  int volpending;
++  // Number of frames buffered in the hardware
++  int hw_delay;
++  // Temporary buffer where data is stored sndio-compatible format
++  char* buffer;
++
++  DISALLOW_COPY_AND_ASSIGN(SndioAudioOutputStream);
++};
++
++}  // namespace media
++
++#endif  // MEDIA_AUDIO_SNDIO_SNDIO_OUTPUT_H_
+--- a/src/3rdparty/chromium/media/media_options.gni
++++ b/src/3rdparty/chromium/media/media_options.gni
+@@ -189,6 +189,9 @@ declare_args() {
+   # Enables runtime selection of ALSA library for audio.
+   use_alsa = false
+ 
++  # Enable runtime selection of sndio(7)
++  use_sndio = false
++
+   # Alsa should be used on all non-Android, non-Mac POSIX systems - with the
+   # exception of CastOS desktop builds.
+   #
diff --git a/srcpkgs/qt6-pdf/patches/0155-systypes.patch b/srcpkgs/qt6-pdf/patches/0144-systypes.patch
similarity index 93%
rename from srcpkgs/qt6-pdf/patches/0155-systypes.patch
rename to srcpkgs/qt6-pdf/patches/0144-systypes.patch
index f4e71e939cd1ce..431f7add784da2 100644
--- a/srcpkgs/qt6-pdf/patches/0155-systypes.patch
+++ b/srcpkgs/qt6-pdf/patches/0144-systypes.patch
@@ -1,6 +1,6 @@
 --- a/src/3rdparty/chromium/base/third_party/symbolize/symbolize.h
 +++ b/src/3rdparty/chromium/base/third_party/symbolize/symbolize.h
-@@ -58,6 +58,8 @@
+@@ -60,6 +60,8 @@
  #include "config.h"
  #include "glog/logging.h"
  
diff --git a/srcpkgs/qt6-pdf/patches/0150-chromium-unbundle-ffmpeg-av_stream_get_first_dts.patch b/srcpkgs/qt6-pdf/patches/0145-unbundle-ffmpeg-av_stream_get_first_dts.patch
similarity index 56%
rename from srcpkgs/qt6-pdf/patches/0150-chromium-unbundle-ffmpeg-av_stream_get_first_dts.patch
rename to srcpkgs/qt6-pdf/patches/0145-unbundle-ffmpeg-av_stream_get_first_dts.patch
index e7f6048fbc1c7b..7d426098ed0228 100644
--- a/srcpkgs/qt6-pdf/patches/0150-chromium-unbundle-ffmpeg-av_stream_get_first_dts.patch
+++ b/srcpkgs/qt6-pdf/patches/0145-unbundle-ffmpeg-av_stream_get_first_dts.patch
@@ -1,5 +1,5 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/build/linux/unbundle/ffmpeg.gn
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/build/linux/unbundle/ffmpeg.gn
+--- a/src/3rdparty/chromium/build/linux/unbundle/ffmpeg.gn
++++ b/src/3rdparty/chromium/build/linux/unbundle/ffmpeg.gn
 @@ -12,6 +12,7 @@ pkg_config("system_ffmpeg") {
      "libavformat",
      "libavutil",
diff --git a/srcpkgs/qt6-pdf/patches/0151-chromium-unbundled-cross-toolchain.patch b/srcpkgs/qt6-pdf/patches/0146-unbundled-cross-toolchain.patch
similarity index 56%
rename from srcpkgs/qt6-pdf/patches/0151-chromium-unbundled-cross-toolchain.patch
rename to srcpkgs/qt6-pdf/patches/0146-unbundled-cross-toolchain.patch
index 746d2dfb9a7ed2..4381d0779ede74 100644
--- a/srcpkgs/qt6-pdf/patches/0151-chromium-unbundled-cross-toolchain.patch
+++ b/srcpkgs/qt6-pdf/patches/0146-unbundled-cross-toolchain.patch
@@ -1,5 +1,5 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/build/toolchain/linux/unbundle/BUILD.gn
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/build/toolchain/linux/unbundle/BUILD.gn
+--- a/src/3rdparty/chromium/build/toolchain/linux/unbundle/BUILD.gn
++++ b/src/3rdparty/chromium/build/toolchain/linux/unbundle/BUILD.gn
 @@ -35,8 +35,8 @@ gcc_toolchain("host") {
    extra_ldflags = getenv("BUILD_LDFLAGS")
  
diff --git a/srcpkgs/qt6-pdf/patches/0148-webrtc-size_t.patch b/srcpkgs/qt6-pdf/patches/0148-webrtc-size_t.patch
new file mode 100644
index 00000000000000..c9f26b15e6a821
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0148-webrtc-size_t.patch
@@ -0,0 +1,10 @@
+--- a/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
++++ b/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
+@@ -14,6 +14,7 @@
+ #include <stddef.h>
+ 
+ #include <array>
++#include <cstddef>
+ 
+ namespace webrtc {
+ 
diff --git a/srcpkgs/qt6-pdf/patches/0152-chromium-webrtc-size_t.patch b/srcpkgs/qt6-pdf/patches/0152-chromium-webrtc-size_t.patch
deleted file mode 100644
index 8f60204ff5845d..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0152-chromium-webrtc-size_t.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
-@@ -14,6 +14,7 @@
- #include <stddef.h>
- 
- #include <array>
-+#include <cstddef>
- 
- namespace webrtc {
- 
diff --git a/srcpkgs/qt6-pdf/patches/0153-chromium-webrtc-size_t.patch b/srcpkgs/qt6-pdf/patches/0153-chromium-webrtc-size_t.patch
deleted file mode 100644
index 3b5b7a3d53b995..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0153-chromium-webrtc-size_t.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/angle/include/platform/PlatformMethods.h
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/angle/include/platform/PlatformMethods.h
-@@ -222,11 +222,11 @@ inline void DefaultHistogramBoolean(Plat
- 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-pdf/patches/0154-chromium-uit_t.patch b/srcpkgs/qt6-pdf/patches/0154-chromium-uit_t.patch
deleted file mode 100644
index d13a31fee402b0..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0154-chromium-uit_t.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/sandbox/linux/services/credentials.h
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/sandbox/linux/services/credentials.h
-@@ -14,6 +14,8 @@
- #include <string>
- #include <vector>
- 
-+#include <sys/types.h>
-+
- #include "sandbox/linux/system_headers/capability.h"
- #include "sandbox/sandbox_export.h"
- 
diff --git a/srcpkgs/qt6-pdf/patches/0300-chromium-musl-hacks.patch b/srcpkgs/qt6-pdf/patches/0300-chromium-musl-hacks.patch
deleted file mode 100644
index e0b91a09a84f4b..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0300-chromium-musl-hacks.patch
+++ /dev/null
@@ -1,38 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/debug/stack_trace.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/debug/stack_trace.cc
-@@ -234,7 +234,7 @@ bool StackTrace::WillSymbolizeToStreamFo
-   // Symbols are not expected to be reliable when gn args specifies
-   // symbol_level=0.
-   return false;
--#elif defined(__UCLIBC__) || defined(_AIX)
-+#elif defined(__GLIBC__) || defined(_AIX)
-   // StackTrace::OutputToStream() is not implemented under uclibc, nor AIX.
-   // See https://crbug.com/706728
-   return false;
-@@ -273,7 +273,9 @@ void StackTrace::Print() const {
- }
- 
- void StackTrace::OutputToStream(std::ostream* os) const {
-+#if defined(__GLIBC__)
-   OutputToStreamWithPrefix(os, nullptr);
-+#endif
- }
- 
- std::string StackTrace::ToString() const {
-@@ -281,14 +283,14 @@ std::string StackTrace::ToString() const
- }
- 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();
- }
- 
- std::ostream& operator<<(std::ostream& os, const StackTrace& s) {
--#if !defined(__UCLIBC__) && !defined(_AIX)
-+#if defined(__GLIBC__) && !defined(_AIX)
-   s.OutputToStream(&os);
- #else
-   os << "StackTrace::OutputToStream not implemented.";
diff --git a/srcpkgs/qt6-pdf/patches/0301-chromium-musl-sandbox.patch b/srcpkgs/qt6-pdf/patches/0301-chromium-musl-sandbox.patch
deleted file mode 100644
index 8332e6a67117e1..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0301-chromium-musl-sandbox.patch
+++ /dev/null
@@ -1,70 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
-@@ -134,6 +134,7 @@ namespace sandbox {
- ResultExpr RestrictCloneToThreadsAndEPERMFork() {
-   const Arg<unsigned long> flags(0);
- 
-+#ifdef __GLIBC__
-   // TODO(mdempsky): Extend DSL to support (flags & ~mask1) == mask2.
-   const uint64_t kAndroidCloneMask = CLONE_VM | CLONE_FS | CLONE_FILES |
-                                      CLONE_SIGHAND | CLONE_THREAD |
-@@ -160,6 +161,16 @@ ResultExpr RestrictCloneToThreadsAndEPER
-   return If(IsAndroid() ? android_test : glibc_test, Allow())
-       .ElseIf(is_fork_or_clone_vfork, 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
- }
- 
- #ifndef PR_PAC_RESET_KEYS
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
-@@ -424,6 +424,9 @@ bool SyscallSets::IsAllowedProcessStartO
- #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.
-@@ -436,7 +439,9 @@ bool SyscallSets::IsAllowedProcessStartO
- #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:
-@@ -550,6 +555,10 @@ bool SyscallSets::IsAllowedAddressSpaceA
-     case __NR_mlock:
-     case __NR_munlock:
-     case __NR_munmap:
-+#ifndef __GLIBC__
-+    case __NR_mremap:
-+    case __NR_membarrier:
-+#endif
-       return true;
-     case __NR_madvise:
-     case __NR_mincore:
-@@ -567,7 +575,9 @@ bool SyscallSets::IsAllowedAddressSpaceA
-     case __NR_modify_ldt:
- #endif
-     case __NR_mprotect:
-+#ifdef __GLIBC__
-     case __NR_mremap:
-+#endif
-     case __NR_msync:
-     case __NR_munlockall:
-     case __NR_readahead:
diff --git a/srcpkgs/qt6-pdf/patches/0700-armv7l-neon.patch b/srcpkgs/qt6-pdf/patches/0700-armv7l-neon.patch
deleted file mode 100644
index 5ca1953d2cb35d..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0700-armv7l-neon.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/skia/BUILD.gn
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/skia/BUILD.gn
-@@ -786,7 +786,6 @@ skia_source_set("skia_opts") {
-         # 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-pdf/patches/0750-chromium-musl-cross-no-asm_ptrace_h.patch b/srcpkgs/qt6-pdf/patches/0750-chromium-musl-cross-no-asm_ptrace_h.patch
deleted file mode 100644
index ca7b0150962c7a..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0750-chromium-musl-cross-no-asm_ptrace_h.patch
+++ /dev/null
@@ -1,30 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
-@@ -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>
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc
-@@ -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-pdf/patches/0751-chromium-musl-arm-user_vfp.patch b/srcpkgs/qt6-pdf/patches/0751-chromium-musl-arm-user_vfp.patch
deleted file mode 100644
index d7c18036d503a0..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0751-chromium-musl-arm-user_vfp.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/crashpad/crashpad/util/linux/thread_info.h
-+++ qt6-webengine-6.4.2/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-pdf/patches/0752-chromium-musl-arm-elf_auxv_t.patch b/srcpkgs/qt6-pdf/patches/0752-chromium-musl-arm-elf_auxv_t.patch
deleted file mode 100644
index 52f5f47be831d7..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0752-chromium-musl-arm-elf_auxv_t.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/v8/src/base/cpu.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/v8/src/base/cpu.cc
-@@ -165,6 +165,15 @@ static V8_INLINE void __cpuid(int cpu_in
- 
- #if V8_HOST_ARCH_ARM || V8_HOST_ARCH_ARM64
- 
-+#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() {
-   uint32_t result = 0;
- #if V8_GLIBC_PREREQ(2, 16)
diff --git a/srcpkgs/qt6-pdf/patches/0753-chromium-musl-32-bit-fstat.patch b/srcpkgs/qt6-pdf/patches/0753-chromium-musl-32-bit-fstat.patch
deleted file mode 100644
index 09239a8198417a..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0753-chromium-musl-32-bit-fstat.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/src/3rdparty/chromium/third_party/lss/linux_syscall_support.h
-+++ b/src/3rdparty/chromium/third_party/lss/linux_syscall_support.h
-@@ -293,6 +293,10 @@ struct kernel_rusage {
-   long               ru_nivcsw;
- };
- 
-+#ifdef fstatat64
-+#undef fstatat64
-+#endif
-+
- #if defined(__i386__) || defined(__ARM_EABI__) || defined(__ARM_ARCH_3__) \
-   || defined(__PPC__) || (defined(__s390__) && !defined(__s390x__)) \
-   || defined(__e2k__)
diff --git a/srcpkgs/qt6-pdf/patches/0800-musl-sandbox.patch b/srcpkgs/qt6-pdf/patches/0800-musl-sandbox.patch
new file mode 100644
index 00000000000000..a59c273653012b
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0800-musl-sandbox.patch
@@ -0,0 +1,121 @@
+Source: https://git.alpinelinux.org/aports/tree/community/chromium/musl-sandbox.patch
+musl uses different syscalls from glibc for some functions,
+so the sandbox has to account for that
+--- a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
++++ b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
+@@ -132,6 +132,7 @@ namespace sandbox {
+ ResultExpr RestrictCloneToThreadsAndEPERMFork() {
+   const Arg<unsigned long> flags(0);
+ 
++#ifdef __GLIBC__
+   // TODO(mdempsky): Extend DSL to support (flags & ~mask1) == mask2.
+   const uint64_t kAndroidCloneMask = CLONE_VM | CLONE_FS | CLONE_FILES |
+                                      CLONE_SIGHAND | CLONE_THREAD |
+@@ -146,6 +147,13 @@ ResultExpr RestrictCloneToThreadsAndEPER
+   const BoolExpr android_test =
+       AnyOf(flags == kAndroidCloneMask, flags == kObsoleteAndroidCloneMask,
+             flags == kGlibcPthreadFlags);
++#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;
++#endif
+ 
+   // The following two flags are the two important flags in any vfork-emulating
+   // clone call. EPERM any clone call that contains both of them.
+@@ -155,7 +163,11 @@ ResultExpr RestrictCloneToThreadsAndEPER
+       AnyOf((flags & (CLONE_VM | CLONE_THREAD)) == 0,
+             (flags & kImportantCloneVforkFlags) == kImportantCloneVforkFlags);
+ 
++#ifdef __GLIBC__
+   return If(IsAndroid() ? android_test : glibc_test, Allow())
++#else
++  return If(thread_clone_ok, Allow())
++#endif
+       .ElseIf(is_fork_or_clone_vfork, Error(EPERM))
+       .Else(CrashSIGSYSClone());
+ }
+--- a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
++++ b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
+@@ -439,6 +439,9 @@ bool SyscallSets::IsAllowedProcessStartO
+ #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.
+@@ -451,7 +454,9 @@ bool SyscallSets::IsAllowedProcessStartO
+ #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:
+@@ -549,6 +554,10 @@ bool SyscallSets::IsAllowedAddressSpaceA
+     case __NR_mlock:
+     case __NR_munlock:
+     case __NR_munmap:
++#ifndef __GLIBC__
++    case __NR_mremap:
++    case __NR_membarrier:
++#endif
+       return true;
+     case __NR_madvise:
+     case __NR_mincore:
+@@ -566,7 +575,9 @@ bool SyscallSets::IsAllowedAddressSpaceA
+     case __NR_modify_ldt:
+ #endif
+     case __NR_mprotect:
++#ifdef __GLIBC__
+     case __NR_mremap:
++#endif
+     case __NR_msync:
+     case __NR_munlockall:
+     case __NR_readahead:
+--- a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
++++ b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
+@@ -225,12 +225,26 @@ ResultExpr EvaluateSyscallImpl(int fs_de
+   if (sysno == __NR_getpriority || sysno ==__NR_setpriority)
+     return RestrictGetSetpriority(current_pid);
+ 
++#ifndef __GLIBC__
++  // XXX: hacks for musl sandbox, calls needed?
++  if (sysno == __NR_sched_getparam || sysno == __NR_sched_getscheduler ||
++      sysno == __NR_sched_setscheduler) {
++    return Allow();
++  }
++#endif
++
+   // The scheduling syscalls are used in threading libraries and also heavily in
+   // abseil. See for example https://crbug.com/1370394.
++#ifdef __GLIBC__
+   if (sysno == __NR_sched_getaffinity || sysno == __NR_sched_getparam ||
+       sysno == __NR_sched_getscheduler || sysno == __NR_sched_setscheduler) {
+     return RestrictSchedTarget(current_pid, sysno);
+   }
++#else
++  if (sysno == __NR_sched_getaffinity) {
++    return RestrictSchedTarget(current_pid, sysno);
++  }
++#endif
+ 
+   if (sysno == __NR_getrandom) {
+     return RestrictGetRandom();
+--- a/src/3rdparty/chromium/sandbox/linux/system_headers/linux_syscalls.h
++++ b/src/3rdparty/chromium/sandbox/linux/system_headers/linux_syscalls.h
+@@ -10,6 +10,7 @@
+ #define SANDBOX_LINUX_SYSTEM_HEADERS_LINUX_SYSCALLS_H_
+ 
+ #include "build/build_config.h"
++#include <sys/syscall.h>
+ 
+ #if defined(__x86_64__)
+ #include "sandbox/linux/system_headers/x86_64_linux_syscalls.h"
diff --git a/srcpkgs/qt6-pdf/patches/0010-chromium-musl-tid-caching.patch b/srcpkgs/qt6-pdf/patches/0801-musl-tid-caching.patch
similarity index 92%
rename from srcpkgs/qt6-pdf/patches/0010-chromium-musl-tid-caching.patch
rename to srcpkgs/qt6-pdf/patches/0801-musl-tid-caching.patch
index 8fbf4c0b1ba6f8..5e482667fcfb6e 100644
--- a/srcpkgs/qt6-pdf/patches/0010-chromium-musl-tid-caching.patch
+++ b/srcpkgs/qt6-pdf/patches/0801-musl-tid-caching.patch
@@ -2,13 +2,13 @@ Source: https://git.alpinelinux.org/aports/plain/community/chromium/musl-tid-cac
 the sandbox caching of thread id's only works with glibc
 see: https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/32356
 see: https://gitlab.alpinelinux.org/alpine/aports/-/issues/13579
---
 --- a/src/3rdparty/chromium/sandbox/linux/services/namespace_sandbox.cc
 +++ b/src/3rdparty/chromium/sandbox/linux/services/namespace_sandbox.cc
-@@ -209,6 +209,70 @@
+@@ -208,6 +208,72 @@ base::Process NamespaceSandbox::LaunchPr
    return base::LaunchProcess(argv, launch_options_copy);
  }
  
++#ifndef __GLIBC__
 +#if defined(__aarch64__) || defined(__arm__) || defined(__powerpc__)
 +#define TLS_ABOVE_TP
 +#endif
@@ -72,15 +72,16 @@ see: https://gitlab.alpinelinux.org/alpine/aports/-/issues/13579
 +  pid_t* cached_tid_location = &reinterpret_cast<struct musl_pthread*>(pthread_self())->tid;
 +  *cached_tid_location = real_tid;
 +}
++#endif
 +
  // static
  pid_t NamespaceSandbox::ForkInNewPidNamespace(bool drop_capabilities_in_child) {
    const pid_t pid =
-@@ -226,6 +290,8 @@
+@@ -225,6 +291,9 @@ pid_t NamespaceSandbox::ForkInNewPidName
  #if defined(LIBC_GLIBC)
      MaybeUpdateGlibcTidCache();
--#endif
-+#else
+ #endif
++#ifndef __GLIBC__
 +    MaybeUpdateMuslTidCache();
 +#endif
      return 0;
diff --git a/srcpkgs/qt6-pdf/patches/0802-musl-no-res-ninit-nclose.patch b/srcpkgs/qt6-pdf/patches/0802-musl-no-res-ninit-nclose.patch
new file mode 100644
index 00000000000000..e2a01d946d3c95
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0802-musl-no-res-ninit-nclose.patch
@@ -0,0 +1,20 @@
+--- a/src/3rdparty/chromium/net/dns/public/scoped_res_state.cc
++++ b/src/3rdparty/chromium/net/dns/public/scoped_res_state.cc
+@@ -13,7 +13,7 @@
+ namespace net {
+ 
+ ScopedResState::ScopedResState() {
+-#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_FUCHSIA)
++#ifndef __GLIBC__
+   // Note: res_ninit in glibc always returns 0 and sets RES_INIT.
+   // res_init behaves the same way.
+   memset(&_res, 0, sizeof(_res));
+@@ -30,7 +30,7 @@ ScopedResState::~ScopedResState() {
+   // Prefer res_ndestroy where available.
+ #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD)
+   res_ndestroy(&res_);
+-#else
++#elif defined(__GLIBC__)
+   res_nclose(&res_);
+ #endif  // BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD)
+ 
diff --git a/srcpkgs/qt6-pdf/patches/0803-musl-include.patch b/srcpkgs/qt6-pdf/patches/0803-musl-include.patch
new file mode 100644
index 00000000000000..b8e24762c77aa1
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0803-musl-include.patch
@@ -0,0 +1,10 @@
+--- a/src/3rdparty/chromium/gpu/config/gpu_driver_bug_workarounds.h
++++ b/src/3rdparty/chromium/gpu/config/gpu_driver_bug_workarounds.h
+@@ -5,6 +5,7 @@
+ #ifndef GPU_CONFIG_GPU_DRIVER_BUG_WORKAROUNDS_H_
+ #define GPU_CONFIG_GPU_DRIVER_BUG_WORKAROUNDS_H_
+ 
++#include <cstdint>
+ #include <vector>
+ 
+ #include "build/build_config.h"
diff --git a/srcpkgs/qt6-pdf/patches/0998-cross.patch b/srcpkgs/qt6-pdf/patches/0998-cross.patch
deleted file mode 100644
index 9e62be4b4c64d4..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0998-cross.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/examples/CMakeLists.txt	2023-10-03 21:49:54.000000000 +0200
-+++ -	2023-10-27 11:12:01.573293042 +0200
-@@ -4,7 +4,7 @@
- cmake_minimum_required(VERSION 3.16)
- 
- qt_examples_build_begin(EXTERNAL_BUILD)
--if(NOT CMAKE_CROSSCOMPILING) #QTBUG-86533
-+#if(NOT CMAKE_CROSSCOMPILING) #QTBUG-86533
-     if(TARGET Qt::WebEngineCore)
-         add_subdirectory(webenginequick)
-     endif()
-@@ -17,5 +17,5 @@
-     if(TARGET Qt::PdfWidgets)
-         add_subdirectory(pdfwidgets)
-     endif()
--endif()
-+#endif()
- qt_examples_build_end()
diff --git a/srcpkgs/qt6-pdf/patches/0998-example-cross-build.patch b/srcpkgs/qt6-pdf/patches/0998-example-cross-build.patch
new file mode 100644
index 00000000000000..8fb4c7799857d8
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0998-example-cross-build.patch
@@ -0,0 +1,11 @@
+--- a/examples/CMakeLists.txt
++++ b/examples/CMakeLists.txt
+@@ -4,7 +4,7 @@
+ cmake_minimum_required(VERSION 3.16)
+ 
+ qt_examples_build_begin(EXTERNAL_BUILD)
+-if(NOT CMAKE_CROSSCOMPILING) #QTBUG-86533
++if(TRUE) #QTBUG-86533
+     if(TARGET Qt::WebEngineCore)
+         add_subdirectory(webenginequick)
+     endif()
diff --git a/srcpkgs/qt6-pdf/patches/0999-python3.12.patch b/srcpkgs/qt6-pdf/patches/0999-python3.12.patch
deleted file mode 100644
index 40d4010c82688b..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0999-python3.12.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/fileutil.py	2023-10-03 21:49:54.000000000 +0200
-+++ -	2023-10-13 23:26:56.151025878 +0200
-@@ -3,7 +3,6 @@
- # found in the LICENSE file.
- 
- import errno
--import imp
- import os.path
- import sys
- 
---- a/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/parse/lexer.py	2023-10-03 21:49:54.000000000 +0200
-+++ -	2023-10-13 23:28:56.391987051 +0200
-@@ -2,7 +2,6 @@
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
- 
--import imp
- import os.path
- import sys
-
diff --git a/srcpkgs/qt6-pdf/patches/1000-we-know-what-will-be-supported.patch b/srcpkgs/qt6-pdf/patches/1000-we-know-what-will-be-supported.patch
index d9dd1c753527a3..fcf515071fecc0 100644
--- a/srcpkgs/qt6-pdf/patches/1000-we-know-what-will-be-supported.patch
+++ b/srcpkgs/qt6-pdf/patches/1000-we-know-what-will-be-supported.patch
@@ -1,27 +1,15 @@
---- a/src/3rdparty/chromium/BUILD.gn
-+++ b/src/3rdparty/chromium/BUILD.gn
-@@ -1647,9 +1647,7 @@ if (!is_ios && !is_qtwebengine) {
- }
- 
- # TODO(cassew): Add more OS's that don't support x86.
--is_valid_x86_target =
--    target_os != "ios" && target_os != "mac" &&
--    (target_os != "linux" || use_libfuzzer || !build_with_chromium)
-+is_valid_x86_target = true
- 
- # Note: v8_target_cpu == arm allows using the V8 arm simulator on x86 for fuzzing.
- assert(
 --- a/src/host/CMakeLists.txt
 +++ b/src/host/CMakeLists.txt
-@@ -48,18 +48,3 @@ if(QT_FEATURE_qtpdf_build)
+@@ -50,19 +50,3 @@ if(QT_FEATURE_qtpdf_build)
          DESTINATION ${WEBENGINE_ROOT_BUILD_DIR}/src/pdf/v8_toolchain
      )
  endif()
 -
 -# TODO: this could be run as part of main configure with execute_process
+-# Skip for qtpdf(android)
 -
 -if(CMAKE_CXX_COMPILER_ID STREQUAL GNU AND TEST_architecture_arch STREQUAL "x86_64"
--AND GN_TARGET_CPU STREQUAL "arm")
+-    AND GN_TARGET_CPU STREQUAL "arm" AND NOT MINGW AND NOT ANDROID)
 -    try_compile(
 -        has32HostCompiler
 -        "${CMAKE_CURRENT_BINARY_DIR}/config.tests/hostcompiler"
diff --git a/srcpkgs/qt6-pdf/patches/Partial-migration-from-imp-to-importlib.patch b/srcpkgs/qt6-pdf/patches/Partial-migration-from-imp-to-importlib.patch
deleted file mode 100644
index 46cc88f9bf1770..00000000000000
--- a/srcpkgs/qt6-pdf/patches/Partial-migration-from-imp-to-importlib.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From cbf5f7ad619a967bd54482e1d1df36d80b28145a Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk@redhat.com>
-Date: Thu, 13 Jul 2023 12:18:00 +0200
-Subject: [PATCH] Partial migration from imp to importlib
-
----
- .../resources/protobufs/binary_proto_generator.py           | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py b/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py
-index 2a1802d..ba67251 100755
---- a/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py
-+++ b/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py
-@@ -9,7 +9,7 @@
- """
- from __future__ import print_function
- import abc
--import imp
-+from importlib import util
- import optparse
- import os
- import re
-@@ -68,7 +68,9 @@ class GoogleProtobufModuleImporter:
-       raise ImportError(fullname)
- 
-     filepath = self._fullname_to_filepath(fullname)
--    return imp.load_source(fullname, filepath)
-+    spec = util.spec_from_file_location(fullname, filepath)
-+    loaded = util.module_from_spec(spec)
-+    return spec.loader.exec_module(loaded)
- 
- class BinaryProtoGenerator:
- 
--- 
-2.41.0
-
diff --git a/srcpkgs/qt6-pdf/patches/fix-libxml2-2.12.patch b/srcpkgs/qt6-pdf/patches/fix-libxml2-2.12.patch
deleted file mode 100644
index f85ee4d01ff64f..00000000000000
--- a/srcpkgs/qt6-pdf/patches/fix-libxml2-2.12.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-Based on: https://github.com/chromium/chromium/commit/871f8ae9b65ce2679b0bc0be36902d65edf0c1e4
-
-diff --git a/third_party/blink/renderer/core/xml/xslt_processor.h b/third_party/blink/renderer/core/xml/xslt_processor.h
-index d53835e9675793e..2eaea31ed29b90f 100644
---- a/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor.h
-+++ b/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor.h
-@@ -79,7 +79,11 @@ class XSLTProcessor final : public Scrip
- 
-   void reset();
- 
-+#if LIBXML_VERSION >= 21200
-+  static void ParseErrorFunc(void* user_data, const xmlError*);
-+#else
-   static void ParseErrorFunc(void* user_data, xmlError*);
-+#endif
-   static void GenericErrorFunc(void* user_data, const char* msg, ...);
- 
-   // Only for libXSLT callbacks
-diff --git a/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc b/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc
-index 133e0b3355d2f09..f424077089da87d 100644
---- a/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc
-+++ b/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc
-@@ -60,7 +60,11 @@ void XSLTProcessor::GenericErrorFunc(voi
-   // It would be nice to do something with this error message.
- }
- 
-+#if LIBXML_VERSION >= 21200
-+void XSLTProcessor::ParseErrorFunc(void* user_data, const xmlError* error) {
-+#else
- void XSLTProcessor::ParseErrorFunc(void* user_data, xmlError* error) {
-+#endif
-   FrameConsole* console = static_cast<FrameConsole*>(user_data);
-   if (!console)
-     return;
diff --git a/srcpkgs/qt6-pdf/patches/pipewire-fcntl-call.patch b/srcpkgs/qt6-pdf/patches/pipewire-fcntl-call.patch
deleted file mode 100644
index a139a7e8a532ce..00000000000000
--- a/srcpkgs/qt6-pdf/patches/pipewire-fcntl-call.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Patch-Source: https://webrtc-review.googlesource.com/c/src/+/305120
---
-diff --git a/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc b/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc
-index 5878180..b2ad7ad 100644
---- a/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc
-+++ b/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc
-@@ -452,8 +452,8 @@
-     PipeWireThreadLoopLock thread_loop_lock(pw_main_loop_);
- 
-     if (fd >= 0) {
--      pw_core_ = pw_context_connect_fd(
--          pw_context_, fcntl(fd, F_DUPFD_CLOEXEC), nullptr, 0);
-+      pw_core_ = pw_context_connect_fd(
-+          pw_context_, fcntl(fd, F_DUPFD_CLOEXEC, 0), nullptr, 0);
-     } else {
-       pw_core_ = pw_context_connect(pw_context_, nullptr, 0);
-     }
-
diff --git a/srcpkgs/qt6-pdf/template b/srcpkgs/qt6-pdf/template
index ecda84afac1310..a7f61ea0b0aa5d 100644
--- a/srcpkgs/qt6-pdf/template
+++ b/srcpkgs/qt6-pdf/template
@@ -1,7 +1,7 @@
 # Template file for 'qt6-pdf'
 pkgname=qt6-pdf
-version=6.6.0
-revision=3
+version=6.7.2
+revision=1
 build_style=cmake
 configure_args="-DQT_FEATURE_qtpdf_build=ON
  -DQT_FEATURE_qtpdf_widgets_build=ON
@@ -10,7 +10,8 @@ configure_args="-DQT_FEATURE_qtpdf_build=ON
  -DQT_BUILD_EXAMPLES=ON"
 hostmakedepends="qt6-base-devel perl pkg-config nodejs python3-html5lib
  qt6-declarative-host-tools gperf bison flex nss-devel"
-makedepends="qt6-base-devel qt6-declarative-devel qt6-svg-devel zlib-devel
+makedepends="qt6-base-private-devel qt6-declarative-private-devel
+ qt6-svg-devel zlib-devel
  pciutils-devel opus-devel libxslt-devel libxml2-devel ffmpeg-devel
  lcms2-devel libwebp-devel icu-devel re2-devel snappy-devel libevent-devel
  libvpx-devel minizip-devel tiff-devel libpng-devel harfbuzz-devel
@@ -21,7 +22,7 @@ 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/official_releases/qt/${version%.*}/${version}/submodules/qtwebengine-everywhere-src-${version}.tar.xz"
-checksum=d5dc9ff05a2c57adbf99cbf0c7cb6f19527f67216caf627b0cc160a1d253b780
+checksum=c7755875594d8be382b07bf3634d44fd77012805794d8b588891709a6405ffd1
 
 if [ "$XBPS_LIBC" = "musl" ]; then
 	hostmakedepends+=" musl-legacy-compat"
@@ -62,6 +63,7 @@ if [ "$_have_webengine" = yes ]; then
 	 -DQT_FEATURE_webengine_system_libevent=ON
 	 -DQT_FEATURE_webengine_system_gn=ON
 	 -DQT_FEATURE_webengine_system_icu=ON
+	 -DQT_FEATURE_webengine_system_re2=ON
 	 -DQT_FEATURE_webengine_webrtc_pipewire=ON
 	 -DQT_FEATURE_webengine_embedded_build=OFF
 	 -DQT_FEATURE_webengine_proprietary_codecs=ON"
@@ -167,6 +169,8 @@ pre_install() {
 
 post_install() {
 	local _file
+	rm -rf "${DESTDIR}/usr/tests"
+	rm -f "${DESTDIR}/usr/lib/qt6/bin/testbrowser"
 	find "${DESTDIR}"/usr/lib/qt6/examples \
 		-path '*/lib/qt6/**/lib/qt6/*' -type f |
 	while read _file; do

From 2273eaf16a84b332e375f77db0fe66d1dd2e3e3b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:30 +0700
Subject: [PATCH 25/52] qt6-charts: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-charts/template b/srcpkgs/qt6-charts/template
index 4cd9fd60ed0220..3e42c4082ed5f9 100644
--- a/srcpkgs/qt6-charts/template
+++ b/srcpkgs/qt6-charts/template
@@ -1,16 +1,16 @@
 # Template file for 'qt6-charts'
 pkgname=qt6-charts
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-declarative-host-tools"
-makedepends="qt6-declarative-devel"
+makedepends="qt6-declarative-private-devel qt6-base-private-devel"
 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=e6beabcdc70c7719818459d2b2db63d7b0b5adc5572b8802368b698f64292cf5
+checksum=00f6a437458b7f2c4e81d748dbe2a077567a9e6ad8d8e3820b36c39dc5279bda
 
 pre_check() {
 	export QML2_IMPORT_PATH="$wrksrc/build/lib${XBPS_TARGET_WORDSIZE}/qt6/qml"

From b386b9a001821420d499647ce5763c7cdf0811e9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:31 +0700
Subject: [PATCH 26/52] qt6-connectivity: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-connectivity/template b/srcpkgs/qt6-connectivity/template
index 312291704dde25..a37892b61f2d9f 100644
--- a/srcpkgs/qt6-connectivity/template
+++ b/srcpkgs/qt6-connectivity/template
@@ -1,16 +1,22 @@
 # Template file for 'qt6-connectivity'
 pkgname=qt6-connectivity
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
-hostmakedepends="perl qt6-declarative-host-tools"
-makedepends="qt6-declarative-devel"
+configure_args="-DQT_FEATURE_pcsclite=ON"
+hostmakedepends="perl qt6-declarative-host-tools pkg-config"
+makedepends="qt6-declarative-private-devel libbluetooth-devel pcsclite-devel
+ qt6-base-private-devel"
 short_desc="Cross-platform application and UI framework - Connectivity"
 maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 license="GPL-3.0-only"
 homepage="https://qt.io/"
 distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtconnectivity-everywhere-src-${version}.tar.xz"
-checksum=1c29c26247c28ef19b9ca87c38b4d61a1f94ee9021897962e0d5ba215f1c4010
+checksum=8ed321b242f0e956473a295fa31670271f9b3acb797508644cb740f89f6c08e8
+
+do_check() {
+	ctest -E tst_qlowenergycontroller
+}
 
 qt6-connectivity-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision}

From e43bdb16020ff5347c41fd59d95b4f15e7834102 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:31 +0700
Subject: [PATCH 27/52] qt6-imageformats: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-imageformats/template b/srcpkgs/qt6-imageformats/template
index f550107e80d0e1..5a6c89ee07084c 100644
--- a/srcpkgs/qt6-imageformats/template
+++ b/srcpkgs/qt6-imageformats/template
@@ -1,6 +1,6 @@
 # Template file for 'qt6-imageformats'
 pkgname=qt6-imageformats
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base"
@@ -10,4 +10,4 @@ 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=e1542cb50176e237809895c6549598c08587c63703d100be54ac2d806834e384
+checksum=e1a1d8785fae67d16ad0a443b01d5f32663a6b68d275f1806ebab257485ce5d6

From 1daaf8dc109377ffb17a5f883dc6fa7d0c5641e2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:31 +0700
Subject: [PATCH 28/52] qt6-location: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-location/template b/srcpkgs/qt6-location/template
index 985a82408e5e52..99708c66321a37 100644
--- a/srcpkgs/qt6-location/template
+++ b/srcpkgs/qt6-location/template
@@ -1,16 +1,17 @@
 # Template file for 'qt6-location'
 pkgname=qt6-location
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base qt6-declarative-host-tools"
-makedepends="qt6-serialport-devel qt6-declarative-devel qt6-position-devel"
+makedepends="qt6-serialport-devel qt6-declarative-private-devel qt6-position-devel
+ qt6-base-private-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/official_releases/qt/${version%.*}/${version}/submodules/qtlocation-everywhere-src-${version}.tar.xz"
-checksum=f5968be76108bf22af334b403027cf0a859284cb824250e728bb8daca2d70794
+checksum=f232da58bf1189b69f1f7029417ddfeffcfb801b275aedc720e38244f88a485d
 
 pre_check() {
 	export QML2_IMPORT_PATH="$wrksrc/build/lib${XBPS_TARGET_WORDSIZE}/qt6/qml"

From a0ab5275fac1003bd5ae1717af8912787b47cf04 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:31 +0700
Subject: [PATCH 29/52] qt6-lottie: update to 6.7.2.

---
 srcpkgs/qt6-lottie-private-devel |  1 +
 srcpkgs/qt6-lottie/template      | 22 +++++++++++++++++++---
 2 files changed, 20 insertions(+), 3 deletions(-)
 create mode 120000 srcpkgs/qt6-lottie-private-devel

diff --git a/srcpkgs/qt6-lottie-private-devel b/srcpkgs/qt6-lottie-private-devel
new file mode 120000
index 00000000000000..ba915c5589b897
--- /dev/null
+++ b/srcpkgs/qt6-lottie-private-devel
@@ -0,0 +1 @@
+qt6-lottie
\ No newline at end of file
diff --git a/srcpkgs/qt6-lottie/template b/srcpkgs/qt6-lottie/template
index f5d8c3636e8914..8495153d4b5148 100644
--- a/srcpkgs/qt6-lottie/template
+++ b/srcpkgs/qt6-lottie/template
@@ -1,21 +1,23 @@
 # Template file for 'qt6-lottie'
 pkgname=qt6-lottie
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base qt6-declarative-host-tools"
-makedepends="qt6-declarative-devel"
+makedepends="qt6-declarative-private-devel qt6-base-private-devel"
 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=1d98b45107a4b9a6337bc7ac37b9e54cdaa68110f814d93eecc8fbf8d338f84f
+checksum=d9afbc9358d352a4e521d4693d5bdad6a004272b6e8a9ec7a9f851700fe3f10e
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args="-DQT_BUILD_TESTS=ON"
 fi
 
+subpackages="qt6-lottie-private-devel qt6-lottie-devel"
+
 pre_check() {
 	export QML2_IMPORT_PATH="$wrksrc/build/lib${XBPS_TARGET_WORDSIZE}/qt6/qml"
 }
@@ -24,6 +26,20 @@ post_install() {
 	rm -rf ${DESTDIR}/usr/tests
 }
 
+qt6-lottie-private-devel_package() {
+	depends="qt6-lottie-devel>=${version}_${revision}"
+	short_desc+=" - private development files"
+	pkg_install() {
+		for dir in $(cd ${DESTDIR} && find usr/include -type d -name private); do
+			vmove "$dir"
+		done
+		vmove "usr/lib/cmake/*Private"
+		vmove "usr/lib/qt6/metatypes/*private_*_metatypes.json"
+		vmove "usr/lib/qt6/mkspecs/modules/*_private.pri"
+		vmove "usr/lib/qt6/modules/*Private.json"
+	}
+}
+
 qt6-lottie-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision}"
 	short_desc+=" - development files"

From d710d91ef97be48254b61a69fd9a6d78b9fb9b02 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:31 +0700
Subject: [PATCH 30/52] qt6-networkauth: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-networkauth/template b/srcpkgs/qt6-networkauth/template
index 1bbd6b97803475..65f468da81df72 100644
--- a/srcpkgs/qt6-networkauth/template
+++ b/srcpkgs/qt6-networkauth/template
@@ -1,16 +1,16 @@
 # Template file for 'qt6-networkauth'
 pkgname=qt6-networkauth
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base"
-makedepends="qt6-base-devel qt6-plugin-networkinformation"
+makedepends="qt6-base-private-devel qt6-plugin-networkinformation"
 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=20d5c0746c00eb3333f17c9869296d0acd0eed93518ea2734b98405cc6cc8830
+checksum=7f09824fcfe589eb32260c305ff9a126fe3bf93be218d372e8e9c10e212df470
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args="-DQT_BUILD_TESTS=ON"

From 8bb7dea1f73f77e9e7c52203e15932df5ebd2616 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:31 +0700
Subject: [PATCH 31/52] qt6-position: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-position/template b/srcpkgs/qt6-position/template
index 32c4093e1645dd..61e463e81dd05a 100644
--- a/srcpkgs/qt6-position/template
+++ b/srcpkgs/qt6-position/template
@@ -1,16 +1,17 @@
 # Template file for 'qt6-position'
 pkgname=qt6-position
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base qt6-declarative-host-tools"
-makedepends="qt6-serialport-devel qt6-declarative-devel"
+makedepends="qt6-serialport-devel qt6-declarative-private-devel
+ qt6-base-private-devel"
 short_desc="Cross-platform application and UI framework - position"
 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/qtpositioning-everywhere-src-${version}.tar.xz"
-checksum=8d6520fa3c759ed33eaea7cb1aa7e1e7ec999f828e496a6c592847d61f0fa539
+checksum=020009f0aa8f6b1042963a45b6e19f2784cc937949cdb673f3b876153e087b1c
 
 pre_check() {
 	export QML2_IMPORT_PATH="$wrksrc/build/lib${XBPS_TARGET_WORDSIZE}/qt6/qml"

From 5deaab729c186630cffd796cb520d9d61612eb90 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:31 +0700
Subject: [PATCH 32/52] qt6-remoteobjects: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-remoteobjects/template b/srcpkgs/qt6-remoteobjects/template
index 51de5ebd7ab993..1f6aa61dc8831c 100644
--- a/srcpkgs/qt6-remoteobjects/template
+++ b/srcpkgs/qt6-remoteobjects/template
@@ -1,10 +1,11 @@
 # Template file for 'qt6-remoteobjects'
 pkgname=qt6-remoteobjects
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-declarative-host-tools pkg-config"
-makedepends="qt6-declarative-devel qt6-connectivity-devel"
+makedepends="qt6-declarative-private-devel qt6-connectivity-devel
+ qt6-base-private-devel"
 # Not a strict dependency, but it's 2022, everyone should use TLS
 depends="qt6-plugin-tls-openssl"
 checkdepends="$depends"
@@ -13,7 +14,7 @@ maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 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/qtremoteobjects-everywhere-src-${version}.tar.xz"
-checksum=261194e35bb9420225f095c58a5a549686797a3d2b7ea6f0d582d7d681f1f76b
+checksum=0b906b81aa7d6f4e47d4a298da67894433f3096a06f4c4237788c1b2cb9b7483
 
 if [ "$CROSS_BUILD" ]; then
 	hostmakedepends+=" qt6-remoteobjects"

From 6ddcefccf5ee3416ea6d850cbd5f3d6313c314ab Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:32 +0700
Subject: [PATCH 33/52] qt6-scxml: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-scxml/template b/srcpkgs/qt6-scxml/template
index 1aaca906de21f0..a5dfb1f85357de 100644
--- a/srcpkgs/qt6-scxml/template
+++ b/srcpkgs/qt6-scxml/template
@@ -1,20 +1,21 @@
 # Template file for 'qt6-scxml'
 pkgname=qt6-scxml
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
+configure_args="-DQT_FEATURE_scxml_ecmascriptdatamodel=ON"
 hostmakedepends="perl qt6-declarative-host-tools"
-makedepends="qt6-declarative-devel"
+makedepends="qt6-declarative-private-devel qt6-base-private-devel"
 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=57ecd0db5d8b063d0334c4b21461585b4904d4884c88de125bd72e967e8a1043
+checksum=20ecf93506d48f27b492ad3dd9d88830e08d642faec3071ce53396a8ae05c86f
 
 subpackages="qt6-scxml-tools qt6-scxml-devel"
 if [ "$CROSS_BUILD" ]; then
-	configure_args="-DQT_FORCE_BUILD_TOOLS=true"
+	configure_args+=" -DQT_FORCE_BUILD_TOOLS=true"
 	hostmakedepends+=" qt6-scxml-tools"
 fi
 

From 6bc6ab8b296af3841918d8af38d7f67af87b5bb2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:32 +0700
Subject: [PATCH 34/52] qt6-sensors: update to 6.7.2.

---
 srcpkgs/qt6-sensors/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/qt6-sensors/template b/srcpkgs/qt6-sensors/template
index d835f29ca091be..8dbfd92079ba46 100644
--- a/srcpkgs/qt6-sensors/template
+++ b/srcpkgs/qt6-sensors/template
@@ -1,16 +1,16 @@
 # Template file for 'qt6-sensors'
 pkgname=qt6-sensors
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-declarative-host-tools pkg-config"
-makedepends="qt6-declarative-devel qt6-svg-devel"
+makedepends="qt6-declarative-private-devel qt6-svg-devel qt6-base-private-devel"
 short_desc="Cross-platform application and UI framework - Sensors"
 maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 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/qtsensors-everywhere-src-${version}.tar.xz"
-checksum=28f0be5d4eac103ba3bb660ea61806d0e193c1fab949d1c95f2cb7cb39d84498
+checksum=ead1dec787c56ed4dc02ed810af54ff1e1f6875cb5cc2506c74eeb9554e6bb59
 
 post_install() {
 	rm -rf ${DESTDIR}/usr/tests

From e73f932adc485ff3d005f9fa7bd2c323d1660649 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:32 +0700
Subject: [PATCH 35/52] qt6-serialport: update to 6.7.2.

---
 srcpkgs/qt6-serialport/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/qt6-serialport/template b/srcpkgs/qt6-serialport/template
index 5c802fe7a6e263..491e1463daa366 100644
--- a/srcpkgs/qt6-serialport/template
+++ b/srcpkgs/qt6-serialport/template
@@ -1,16 +1,16 @@
 # Template file for 'qt6-serialport'
 pkgname=qt6-serialport
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base pkg-config"
-makedepends="qt6-base-devel"
+makedepends="qt6-base-private-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/official_releases/qt/${version%.*}/${version}/submodules/qtserialport-everywhere-src-${version}.tar.xz"
-checksum=ecfcbbf1c47a67ff599a409bf7682fed416f797860c01c934f5a78c336da4065
+checksum=21c34cd1161cb5197bcec662d26a17647b59b6fdff5c364576883c42dbd3b4fc
 
 qt6-serialport-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision} qt6-base-devel>=${version}_1"

From 752e56e0a86e44127bfe087903a1a9f8180a0f4a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:32 +0700
Subject: [PATCH 36/52] qt6-speech: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-speech/template b/srcpkgs/qt6-speech/template
index 7596a055db5dbd..776995f2567c75 100644
--- a/srcpkgs/qt6-speech/template
+++ b/srcpkgs/qt6-speech/template
@@ -1,17 +1,17 @@
 # Template file for 'qt6-speech'
 pkgname=qt6-speech
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl pkg-config qt6-declarative-host-tools"
-makedepends="qt6-base-devel qt6-multimedia-devel qt6-declarative-devel
- flite-devel speech-dispatcher-devel alsa-lib-devel"
+makedepends="qt6-base-private-devel qt6-declarative-private-devel
+ qt6-multimedia-devel flite-devel speech-dispatcher-devel alsa-lib-devel"
 short_desc="Cross-platform application and UI framework (QT6) - Speech component"
 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://www.qt.io"
 distfiles="https://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtspeech-everywhere-src-${version}.tar.xz"
-checksum=969bdbff826808f0cfd80e8f2e357f00174489f30d9f895390cf59814abe9f9c
+checksum=cc8c769404e3e49713be304a73f936890a1ef2f88d590732785f34692a4814ce
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args="-DQT_BUILD_TESTS=ON"

From 6da9a80385c94ad03a6d8226e88364adea65948e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:32 +0700
Subject: [PATCH 37/52] qt6-virtualkeyboard: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-virtualkeyboard/template b/srcpkgs/qt6-virtualkeyboard/template
index f30ef911b70466..5f06025c759358 100644
--- a/srcpkgs/qt6-virtualkeyboard/template
+++ b/srcpkgs/qt6-virtualkeyboard/template
@@ -1,16 +1,17 @@
 # Template file for 'qt6-virtualkeyboard'
 pkgname=qt6-virtualkeyboard
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl pkg-config qt6-declarative-host-tools"
-makedepends="qt6-declarative-devel qt6-svg-devel hunspell-devel"
+makedepends="qt6-declarative-private-devel qt6-svg-devel hunspell-devel
+ qt6-base-private-devel"
 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=2784db43f514bfd3a2ce0e79e0096deea95a3866254d376a9134bc512bfa777b
+checksum=320664b55a0960ff79c1b822dcf6e8cebe3e08b791147d41b570996d81ce180f
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args="-DQT_BUILD_TESTS=ON"

From 2a38dae736cc5a324c84645c605052a3b26e891b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:32 +0700
Subject: [PATCH 38/52] qt6-websockets: update to 6.7.2.

---
 srcpkgs/qt6-websockets/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/qt6-websockets/template b/srcpkgs/qt6-websockets/template
index 176315c28772ad..4b816db33bfba7 100644
--- a/srcpkgs/qt6-websockets/template
+++ b/srcpkgs/qt6-websockets/template
@@ -1,10 +1,10 @@
 # Template file for 'qt6-websockets'
 pkgname=qt6-websockets
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base qt6-declarative-host-tools"
-makedepends="qt6-base-devel qt6-declarative-devel"
+makedepends="qt6-base-private-devel qt6-declarative-private-devel"
 depends="qt6-plugin-tls-openssl"
 checkdepends="$depends"
 short_desc="Cross-platform application and UI framework - websockets"
@@ -12,7 +12,7 @@ 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/qtwebsockets-everywhere-src-${version}.tar.xz"
-checksum=2e05b15c0c6e82c484cf3a4a39a3e3e484a6c8f72bc31ee5cf615d52d07df30e
+checksum=5bde4af6ec9ce8c8632b782ab77b82d910721be2c714e6d38902521bcd1d215f
 
 do_check() {
 	cd build

From 20f8a4aa41b7a99f6a39d5d50078fed888c3802d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:32 +0700
Subject: [PATCH 39/52] qt6-webview: update to 6.7.2.

---
 srcpkgs/qt6-webview/template | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/qt6-webview/template b/srcpkgs/qt6-webview/template
index cc2273052907be..abdfa65829429d 100644
--- a/srcpkgs/qt6-webview/template
+++ b/srcpkgs/qt6-webview/template
@@ -1,16 +1,20 @@
 # Template file for 'qt6-webview'
 pkgname=qt6-webview
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="qt6-base qt6-declarative-host-tools"
-makedepends="qt6-base-devel qt6-declarative-devel qt6-webengine-devel"
+makedepends="qt6-base-private-devel qt6-declarative-private-devel qt6-webengine-devel"
 short_desc="Cross-platform application and UI framework - WebView"
 maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 license="GPL-3.0-only, GPL-2.0-only, LGPL-3.0-only"
 homepage="https://www.qt.io"
 distfiles="https://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtwebview-everywhere-src-${version}.tar.xz"
-checksum=a5a48d9b5dfac60b66a737f844dc57de311de9d154fe10ccd8ec498506753392
+checksum=4ce1096903d4fec39bfcd95d4015acbf105eddf66a384303cb0fe899dd24e4fe
+
+if [ "$XBPS_WORDSIZE$XBPS_WORDSIZE" != "64$XBPS_TARGET_WORDSIZE" ]; then
+	broken="no qt6-webengine"
+fi
 
 qt6-webview-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision}"

From e38d945063c744c12b554000dba099946dded7b8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:33 +0700
Subject: [PATCH 40/52] python3-pyqt6: update to 6.7.0.

---
 ...nectivity-devel => python3-pyqt6-bindings} |   0
 srcpkgs/python3-pyqt6-core-devel              |   1 -
 srcpkgs/python3-pyqt6-dbus-devel              |   1 -
 srcpkgs/python3-pyqt6-declarative-devel       |   1 -
 srcpkgs/python3-pyqt6-gui-devel               |   1 -
 srcpkgs/python3-pyqt6-multimedia-devel        |   1 -
 srcpkgs/python3-pyqt6-network-devel           |   1 -
 srcpkgs/python3-pyqt6-opengl-widgets-devel    |   1 -
 srcpkgs/python3-pyqt6-pdf-devel               |   1 -
 srcpkgs/python3-pyqt6-position-devel          |   1 -
 srcpkgs/python3-pyqt6-printsupport-devel      |   1 -
 srcpkgs/python3-pyqt6-quick3d-devel           |   1 -
 srcpkgs/python3-pyqt6-remoteobjects-devel     |   1 -
 srcpkgs/python3-pyqt6-sensors-devel           |   1 -
 srcpkgs/python3-pyqt6-serialport-devel        |   1 -
 srcpkgs/python3-pyqt6-speech-devel            |   1 -
 srcpkgs/python3-pyqt6-sql-devel               |   1 -
 srcpkgs/python3-pyqt6-svg-devel               |   1 -
 srcpkgs/python3-pyqt6-test-devel              |   1 -
 srcpkgs/python3-pyqt6-tools-devel             |   1 -
 srcpkgs/python3-pyqt6-webchannel-devel        |   1 -
 srcpkgs/python3-pyqt6-websockets-devel        |   1 -
 srcpkgs/python3-pyqt6-widgets-devel           |   1 -
 srcpkgs/python3-pyqt6-xml-devel               |   1 -
 srcpkgs/python3-pyqt6/template                | 339 +++---------------
 25 files changed, 58 insertions(+), 304 deletions(-)
 rename srcpkgs/{python3-pyqt6-connectivity-devel => python3-pyqt6-bindings} (100%)
 delete mode 120000 srcpkgs/python3-pyqt6-core-devel
 delete mode 120000 srcpkgs/python3-pyqt6-dbus-devel
 delete mode 120000 srcpkgs/python3-pyqt6-declarative-devel
 delete mode 120000 srcpkgs/python3-pyqt6-gui-devel
 delete mode 120000 srcpkgs/python3-pyqt6-multimedia-devel
 delete mode 120000 srcpkgs/python3-pyqt6-network-devel
 delete mode 120000 srcpkgs/python3-pyqt6-opengl-widgets-devel
 delete mode 120000 srcpkgs/python3-pyqt6-pdf-devel
 delete mode 120000 srcpkgs/python3-pyqt6-position-devel
 delete mode 120000 srcpkgs/python3-pyqt6-printsupport-devel
 delete mode 120000 srcpkgs/python3-pyqt6-quick3d-devel
 delete mode 120000 srcpkgs/python3-pyqt6-remoteobjects-devel
 delete mode 120000 srcpkgs/python3-pyqt6-sensors-devel
 delete mode 120000 srcpkgs/python3-pyqt6-serialport-devel
 delete mode 120000 srcpkgs/python3-pyqt6-speech-devel
 delete mode 120000 srcpkgs/python3-pyqt6-sql-devel
 delete mode 120000 srcpkgs/python3-pyqt6-svg-devel
 delete mode 120000 srcpkgs/python3-pyqt6-test-devel
 delete mode 120000 srcpkgs/python3-pyqt6-tools-devel
 delete mode 120000 srcpkgs/python3-pyqt6-webchannel-devel
 delete mode 120000 srcpkgs/python3-pyqt6-websockets-devel
 delete mode 120000 srcpkgs/python3-pyqt6-widgets-devel
 delete mode 120000 srcpkgs/python3-pyqt6-xml-devel

diff --git a/srcpkgs/python3-pyqt6-connectivity-devel b/srcpkgs/python3-pyqt6-bindings
similarity index 100%
rename from srcpkgs/python3-pyqt6-connectivity-devel
rename to srcpkgs/python3-pyqt6-bindings
diff --git a/srcpkgs/python3-pyqt6-core-devel b/srcpkgs/python3-pyqt6-core-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-core-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-dbus-devel b/srcpkgs/python3-pyqt6-dbus-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-dbus-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-declarative-devel b/srcpkgs/python3-pyqt6-declarative-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-declarative-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-gui-devel b/srcpkgs/python3-pyqt6-gui-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-gui-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-multimedia-devel b/srcpkgs/python3-pyqt6-multimedia-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-multimedia-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-network-devel b/srcpkgs/python3-pyqt6-network-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-network-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-opengl-widgets-devel b/srcpkgs/python3-pyqt6-opengl-widgets-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-opengl-widgets-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-pdf-devel b/srcpkgs/python3-pyqt6-pdf-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-pdf-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-position-devel b/srcpkgs/python3-pyqt6-position-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-position-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-printsupport-devel b/srcpkgs/python3-pyqt6-printsupport-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-printsupport-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-quick3d-devel b/srcpkgs/python3-pyqt6-quick3d-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-quick3d-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-remoteobjects-devel b/srcpkgs/python3-pyqt6-remoteobjects-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-remoteobjects-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-sensors-devel b/srcpkgs/python3-pyqt6-sensors-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-sensors-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-serialport-devel b/srcpkgs/python3-pyqt6-serialport-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-serialport-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-speech-devel b/srcpkgs/python3-pyqt6-speech-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-speech-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-sql-devel b/srcpkgs/python3-pyqt6-sql-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-sql-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-svg-devel b/srcpkgs/python3-pyqt6-svg-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-svg-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-test-devel b/srcpkgs/python3-pyqt6-test-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-test-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-tools-devel b/srcpkgs/python3-pyqt6-tools-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-tools-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-webchannel-devel b/srcpkgs/python3-pyqt6-webchannel-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-webchannel-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-websockets-devel b/srcpkgs/python3-pyqt6-websockets-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-websockets-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-widgets-devel b/srcpkgs/python3-pyqt6-widgets-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-widgets-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-xml-devel b/srcpkgs/python3-pyqt6-xml-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-xml-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6/template b/srcpkgs/python3-pyqt6/template
index 151ba6a554ed7b..de4fbdf91b1a59 100644
--- a/srcpkgs/python3-pyqt6/template
+++ b/srcpkgs/python3-pyqt6/template
@@ -1,10 +1,11 @@
 # Template file for 'python3-pyqt6'
 pkgname=python3-pyqt6
-version=6.6.1
-revision=2
+version=6.7.0
+revision=1
 build_style=sip-build
 build_helper=qemu
-configure_args="--confirm-license --dbus $XBPS_CROSS_BASE/usr/include/dbus-1.0"
+configure_args="--confirm-license --dbus $XBPS_CROSS_BASE/usr/include/dbus-1.0
+ --verbose"
 hostmakedepends="qt6-base python3-dbus python3-PyQt-builder pkg-config"
 makedepends="qt6-base-devel qt6-declarative-devel qt6-tools-devel
  qt6-webchannel-devel qt6-multimedia-devel qt6-location-devel
@@ -17,33 +18,33 @@ maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 license="GPL-3.0-only"
 homepage="https://www.riverbankcomputing.com/software/pyqt/"
 distfiles="$PYPI_SITE/P/PyQt6/PyQt6-$version.tar.gz"
-checksum=9f158aa29d205142c56f0f35d07784b8df0be28378d20a97bcda8bd64ffd0379
+checksum=3d31b2c59dc378ee26e16586d9469842483588142fc377280aad22aaf2fa6235
 lib32disabled=yes
 
-subpackages="python3-pyqt6-core-devel
+subpackages="python3-pyqt6-bindings
  python3-pyqt6-devel python3-pyqt6-devel-tools
- python3-pyqt6-connectivity python3-pyqt6-connectivity-devel
- python3-pyqt6-dbus python3-pyqt6-dbus-devel
- python3-pyqt6-declarative python3-pyqt6-declarative-devel
- python3-pyqt6-gui python3-pyqt6-gui-devel
- python3-pyqt6-multimedia python3-pyqt6-multimedia-devel
- python3-pyqt6-network python3-pyqt6-network-devel
- python3-pyqt6-opengl-widgets python3-pyqt6-opengl-widgets-devel
- python3-pyqt6-position python3-pyqt6-position-devel
- python3-pyqt6-printsupport python3-pyqt6-printsupport-devel
- python3-pyqt6-quick3d python3-pyqt6-quick3d-devel
- python3-pyqt6-remoteobjects python3-pyqt6-remoteobjects-devel
- python3-pyqt6-sensors python3-pyqt6-sensors-devel
- python3-pyqt6-serialport python3-pyqt6-serialport-devel
- python3-pyqt6-speech python3-pyqt6-speech-devel
- python3-pyqt6-sql python3-pyqt6-sql-devel
- python3-pyqt6-svg python3-pyqt6-svg-devel
- python3-pyqt6-test python3-pyqt6-test-devel
- python3-pyqt6-tools python3-pyqt6-tools-devel
- python3-pyqt6-websockets python3-pyqt6-websockets-devel
- python3-pyqt6-webchannel python3-pyqt6-webchannel-devel
- python3-pyqt6-widgets python3-pyqt6-widgets-devel
- python3-pyqt6-xml python3-pyqt6-xml-devel
+ python3-pyqt6-connectivity
+ python3-pyqt6-dbus
+ python3-pyqt6-declarative
+ python3-pyqt6-gui
+ python3-pyqt6-multimedia
+ python3-pyqt6-network
+ python3-pyqt6-opengl-widgets
+ python3-pyqt6-position
+ python3-pyqt6-printsupport
+ python3-pyqt6-quick3d
+ python3-pyqt6-remoteobjects
+ python3-pyqt6-sensors
+ python3-pyqt6-serialport
+ python3-pyqt6-speech
+ python3-pyqt6-sql
+ python3-pyqt6-svg
+ python3-pyqt6-test
+ python3-pyqt6-tools
+ python3-pyqt6-websockets
+ python3-pyqt6-webchannel
+ python3-pyqt6-widgets
+ python3-pyqt6-xml
  "
 
 case "$XBPS_TARGET_MACHINE" in
@@ -52,18 +53,42 @@ case "$XBPS_TARGET_MACHINE" in
 	armv5* | armv6*) ;;
 	*)
 		makedepends+=" qt6-pdf-devel"
-		subpackages+=" python3-pyqt6-pdf python3-pyqt6-pdf-devel"
+		subpackages+=" python3-pyqt6-pdf"
 		;;
 esac
 # Split like qt6, but keep qt6-core in main pkg
 
-python3-pyqt6-core-devel_package() {
-	lib32disabled=yes
+python3-pyqt6-bindings_package() {
+	lib32disabled=yes
+	replaces="python3-pyqt6-core-devel
+	 python3-pyqt6-connectivity-devel
+	 python3-pyqt6-dbus-devel
+	 python3-pyqt6-declarative-devel
+	 python3-pyqt6-gui-devel
+	 python3-pyqt6-multimedia-devel
+	 python3-pyqt6-network-devel
+	 python3-pyqt6-opengl-widgets-devel
+	 python3-pyqt6-pdf-devel
+	 python3-pyqt6-position-devel
+	 python3-pyqt6-printsupport-devel
+	 python3-pyqt6-quick3d-devel
+	 python3-pyqt6-remoteobjects-devel
+	 python3-pyqt6-sensors-devel
+	 python3-pyqt6-serialport-devel
+	 python3-pyqt6-speech-devel
+	 python3-pyqt6-sql-devel
+	 python3-pyqt6-svg-devel
+	 python3-pyqt6-test-devel
+	 python3-pyqt6-tools-devel
+	 python3-pyqt6-websockets-devel
+	 python3-pyqt6-webchannel-devel
+	 python3-pyqt6-widgets-devel
+	 python3-pyqt6-xml-devel"
 	depends="${sourcepkg}>=${version}_${revision}
 	 qt6-base-devel python3-devel sip"
-	short_desc="${short_desc} - core development files"
+	short_desc="${short_desc} - SIP bindings"
 	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtCore"
+		vmove "${py3_sitelib}/PyQt6/bindings"
 	}
 }
 
@@ -77,16 +102,6 @@ python3-pyqt6-dbus_package() {
 	}
 }
 
-python3-pyqt6-dbus-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-dbus>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}"
-	short_desc="${short_desc} - DBus - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtDBus"
-	}
-}
-
 python3-pyqt6-tools_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -98,17 +113,6 @@ python3-pyqt6-tools_package() {
 	}
 }
 
-python3-pyqt6-tools-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-tools>=${version}_${revision} qt6-tools-devel
-	 python3-pyqt6-widgets-devel>=${version}_${revision}"
-	short_desc="${short_desc} - Tools - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtDesigner"
-		vmove "${py3_sitelib}/PyQt6/bindings/QtHelp"
-	}
-}
-
 python3-pyqt6-gui_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -119,17 +123,6 @@ python3-pyqt6-gui_package() {
 	}
 }
 
-python3-pyqt6-gui-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-gui>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}"
-	short_desc="${short_desc} - GUI - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtGui"
-		vmove "${py3_sitelib}/PyQt6/bindings/QtOpenGL"
-	}
-}
-
 python3-pyqt6-network_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -139,16 +132,6 @@ python3-pyqt6-network_package() {
 	}
 }
 
-python3-pyqt6-network-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-network>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}"
-	short_desc="${short_desc} - Network"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtNetwork"
-	}
-}
-
 python3-pyqt6-opengl-widgets_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -158,16 +141,6 @@ python3-pyqt6-opengl-widgets_package() {
 	}
 }
 
-python3-pyqt6-opengl-widgets-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-opengl-widgets>=${version}_${revision}
-	 python3-pyqt6-widgets-devel>=${version}_${revision}"
-	short_desc="${short_desc} - OpenGL Widgets - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtOpenGLWidgets"
-	}
-}
-
 python3-pyqt6-printsupport_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -177,16 +150,6 @@ python3-pyqt6-printsupport_package() {
 	}
 }
 
-python3-pyqt6-printsupport-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-printsupport>=${version}_${revision}
-	 python3-pyqt6-widgets-devel>=${version}_${revision}"
-	short_desc="${short_desc} - Print Support - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtPrintSupport"
-	}
-}
-
 python3-pyqt6-declarative_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -199,18 +162,6 @@ python3-pyqt6-declarative_package() {
 	}
 }
 
-python3-pyqt6-declarative-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-declarative>=${version}_${revision}
-	 qt6-declarative-devel python3-pyqt6-widgets-devel>=${version}_${revision}"
-	short_desc="${short_desc} - Declarative - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtQml"
-		vmove "${py3_sitelib}/PyQt6/bindings/QtQuick"
-		vmove "${py3_sitelib}/PyQt6/bindings/QtQuickWidgets"
-	}
-}
-
 python3-pyqt6-quick3d_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -220,16 +171,6 @@ python3-pyqt6-quick3d_package() {
 	}
 }
 
-python3-pyqt6-quick3d-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-quick3d>=${version}_${revision} qt6-quick3d-devel
-	 python3-pyqt6-declarative-devel>=${version}_${revision}"
-	short_desc="${short_desc} - Quick3D - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtQuick3D"
-	}
-}
-
 python3-pyqt6-sql_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -239,16 +180,6 @@ python3-pyqt6-sql_package() {
 	}
 }
 
-python3-pyqt6-sql-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-sql>=${version}_${revision}
-	 python3-pyqt6-widgets-devel>=${version}_${revision}"
-	short_desc="${short_desc} - SQL - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtSql"
-	}
-}
-
 python3-pyqt6-svg_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -259,17 +190,6 @@ python3-pyqt6-svg_package() {
 	}
 }
 
-python3-pyqt6-svg-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-svg>=${version}_${revision} qt6-svg-devel
-	 python3-pyqt6-widgets-devel>=${version}_${revision}"
-	short_desc="${short_desc} - svg - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtSvg"
-		vmove "${py3_sitelib}/PyQt6/bindings/QtSvgWidgets"
-	}
-}
-
 python3-pyqt6-test_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -279,16 +199,6 @@ python3-pyqt6-test_package() {
 	}
 }
 
-python3-pyqt6-test-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-test>=${version}_${revision}
-	 python3-pyqt6-widgets-devel>=${version}_${revision}"
-	short_desc="${short_desc} - Test - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtTest"
-	}
-}
-
 python3-pyqt6-widgets_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -298,16 +208,6 @@ python3-pyqt6-widgets_package() {
 	}
 }
 
-python3-pyqt6-widgets-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-widgets>=${version}_${revision}
-	 python3-pyqt6-gui-devel>=${version}_${revision}"
-	short_desc="${short_desc} - Widgets"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtWidgets"
-	}
-}
-
 python3-pyqt6-xml_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -317,16 +217,6 @@ python3-pyqt6-xml_package() {
 	}
 }
 
-python3-pyqt6-xml-devel_package() {
-	lib32disabled=yes
-	depends="${sourcepkg}>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}"
-	short_desc="${short_desc} - Xml - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtXml"
-	}
-}
-
 python3-pyqt6-devel-tools_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -341,7 +231,7 @@ python3-pyqt6-devel-tools_package() {
 python3-pyqt6-devel_package() {
 	lib32disabled=yes
 	build_style=meta
-	depends="${subpackages/python3-pyqt6-devel /}"
+	depends="python3-pyqt6-devel-tools python3-pyqt6-bindings"
 	short_desc="${short_desc} - development files"
 }
 
@@ -354,17 +244,6 @@ python3-pyqt6-websockets_package() {
 	}
 }
 
-python3-pyqt6-websockets-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - WebSockets - development files"
-	depends="python3-pyqt6-websockets>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-websockets-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtWebSockets"
-	}
-}
-
 python3-pyqt6-webchannel_package() {
 	lib32disabled=yes
 	short_desc+=" - WebChannel"
@@ -374,17 +253,6 @@ python3-pyqt6-webchannel_package() {
 	}
 }
 
-python3-pyqt6-webchannel-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - WebChannel - development files"
-	depends="python3-pyqt6-webchannel>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-webchannel-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtWebChannel"
-	}
-}
-
 python3-pyqt6-multimedia_package() {
 	lib32disabled=yes
 	short_desc+=" - Multimedia"
@@ -395,18 +263,6 @@ python3-pyqt6-multimedia_package() {
 	}
 }
 
-python3-pyqt6-multimedia-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - Multimedia - development files"
-	depends="python3-pyqt6-multimedia>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-multimedia-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtMultimedia*"
-		vmove "${py3_sitelib}/PyQt6/bindings/QtSpatialAudio*"
-	}
-}
-
 python3-pyqt6-position_package() {
 	lib32disabled=yes
 	short_desc+=" - Position"
@@ -416,17 +272,6 @@ python3-pyqt6-position_package() {
 	}
 }
 
-python3-pyqt6-position-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - Position - development files"
-	depends="python3-pyqt6-position>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-location-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtPositioning"
-	}
-}
-
 python3-pyqt6-remoteobjects_package() {
 	lib32disabled=yes
 	short_desc+=" - RemoteObjects"
@@ -436,17 +281,6 @@ python3-pyqt6-remoteobjects_package() {
 	}
 }
 
-python3-pyqt6-remoteobjects-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - RemoteObjects - development files"
-	depends="python3-pyqt6-remoteobjects>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-remoteobjects-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtRemoteObjects"
-	}
-}
-
 python3-pyqt6-sensors_package() {
 	lib32disabled=yes
 	short_desc+=" - Sensors"
@@ -456,17 +290,6 @@ python3-pyqt6-sensors_package() {
 	}
 }
 
-python3-pyqt6-sensors-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - Sensors - development files"
-	depends="python3-pyqt6-sensors>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-sensors-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtSensors"
-	}
-}
-
 python3-pyqt6-serialport_package() {
 	lib32disabled=yes
 	short_desc+=" - SerialPort"
@@ -476,17 +299,6 @@ python3-pyqt6-serialport_package() {
 	}
 }
 
-python3-pyqt6-serialport-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - SerialPort - development files"
-	depends="python3-pyqt6-serialport>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-serialport-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtSerialPort"
-	}
-}
-
 python3-pyqt6-connectivity_package() {
 	lib32disabled=yes
 	short_desc+=" - Connectivity"
@@ -497,18 +309,6 @@ python3-pyqt6-connectivity_package() {
 	}
 }
 
-python3-pyqt6-connectivity-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - Connectivity - development files"
-	depends="python3-pyqt6-connectivity>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-connectivity-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtBluetooth"
-		vmove "${py3_sitelib}/PyQt6/bindings/QtNfc"
-	}
-}
-
 python3-pyqt6-pdf_package() {
 	lib32disabled=yes
 	short_desc+=" - Pdf"
@@ -519,18 +319,6 @@ python3-pyqt6-pdf_package() {
 	}
 }
 
-python3-pyqt6-pdf-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - Pdf - development files"
-	depends="python3-pyqt6-pdf>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-pdf-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtPdf"
-		vmove "${py3_sitelib}/PyQt6/bindings/QtPdfWidgets"
-	}
-}
-
 python3-pyqt6-speech_package() {
 	lib32disabled=yes
 	short_desc+=" - Speech"
@@ -539,14 +327,3 @@ python3-pyqt6-speech_package() {
 		vmove "${py3_sitelib}/PyQt6/QtTextToSpeech.*"
 	}
 }
-
-python3-pyqt6-speech-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - Speech - development files"
-	depends="python3-pyqt6-speech>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-speech-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtTextToSpeech"
-	}
-}

From 9d6b906b4de5c276d385524bbb66e059caa1a430 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:33 +0700
Subject: [PATCH 41/52] python3-pyqt6-3d: update to 6.7.0.

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

diff --git a/srcpkgs/python3-pyqt6-3d/template b/srcpkgs/python3-pyqt6-3d/template
index f3a0488a4eea65..e60a51397d710c 100644
--- a/srcpkgs/python3-pyqt6-3d/template
+++ b/srcpkgs/python3-pyqt6-3d/template
@@ -1,18 +1,18 @@
 # Template file for 'python3-pyqt6-3d'
 pkgname=python3-pyqt6-3d
-version=6.6.0
-revision=2
+version=6.7.0
+revision=1
 build_style=sip-build
 build_helper="python3"
 hostmakedepends="qt6-base python3-PyQt-builder pkg-config"
-makedepends="python3-pyqt6-gui-devel qt6-3d-devel"
+makedepends="python3-pyqt6-bindings qt6-3d-devel"
 depends="python3-pyqt6"
 short_desc="Qt6 bindings for 3D - Python 3"
 maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 license="GPL-3.0-only"
 homepage="https://www.riverbankcomputing.com/software/pyqt3d/"
 distfiles="$PYPI_SITE/P/PyQt6-3D/PyQt6_3D-${version}.tar.gz"
-checksum=372b206eb8185f2b6ff048629d3296cb137c9e5901b113119ffa46a317726988
+checksum=3e99bfc801918ab4758dd2660b2d2358e0057c943eb2bd9f8d0ddf156ea5ccd7
 lib32disabled=yes
 
 python3-pyqt6-3d-devel_package() {

From 2b2fe399907468f8d4309b7b04dab5ce77678392 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:33 +0700
Subject: [PATCH 42/52] python3-pyqt6-charts: update to 6.7.0.

---
 srcpkgs/python3-pyqt6-charts/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/python3-pyqt6-charts/template b/srcpkgs/python3-pyqt6-charts/template
index 778988af97212a..a775d616975f1a 100644
--- a/srcpkgs/python3-pyqt6-charts/template
+++ b/srcpkgs/python3-pyqt6-charts/template
@@ -1,7 +1,7 @@
 # Template file for 'python3-pyqt6-charts'
 pkgname=python3-pyqt6-charts
-version=6.6.0
-revision=2
+version=6.7.0
+revision=1
 build_style=sip-build
 build_helper="python3"
 hostmakedepends="qt6-base python3-PyQt-builder pkg-config"
@@ -12,7 +12,7 @@ maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 license="GPL-3.0-only"
 homepage="https://www.riverbankcomputing.com/software/pyqtchart/"
 distfiles="$PYPI_SITE/P/PyQt6-Charts/PyQt6_Charts-${version}.tar.gz"
-checksum=14cc6e5d19cae80129524a42fa6332d0d5dada4282a9423425e6b9ae1b6bc56d
+checksum=c4f7cf369928f7bf032e4e33f718d3b8fe66da176d4959fe30735a970d86f35c
 lib32disabled=yes
 
 python3-pyqt6-charts-devel_package() {

From fd671affb123336aa7b90201a6b13e4266f20362 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:33 +0700
Subject: [PATCH 43/52] python3-pyqt6-networkauth: update to 6.7.0.

---
 srcpkgs/python3-pyqt6-charts/template      | 2 +-
 srcpkgs/python3-pyqt6-networkauth/template | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/python3-pyqt6-charts/template b/srcpkgs/python3-pyqt6-charts/template
index a775d616975f1a..eee424dc7efce4 100644
--- a/srcpkgs/python3-pyqt6-charts/template
+++ b/srcpkgs/python3-pyqt6-charts/template
@@ -5,7 +5,7 @@ revision=1
 build_style=sip-build
 build_helper="python3"
 hostmakedepends="qt6-base python3-PyQt-builder pkg-config"
-makedepends="qt6-charts-devel python3-pyqt6-widgets-devel"
+makedepends="qt6-charts-devel python3-pyqt6-bindings"
 depends="python3-pyqt6"
 short_desc="Qt6 bindings for Charts - Python 3"
 maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
diff --git a/srcpkgs/python3-pyqt6-networkauth/template b/srcpkgs/python3-pyqt6-networkauth/template
index 95010578bf61e2..f4ece09899425a 100644
--- a/srcpkgs/python3-pyqt6-networkauth/template
+++ b/srcpkgs/python3-pyqt6-networkauth/template
@@ -1,18 +1,18 @@
 # Template file for 'python3-pyqt6-networkauth'
 pkgname=python3-pyqt6-networkauth
-version=6.6.0
-revision=2
+version=6.7.0
+revision=1
 build_style=sip-build
 build_helper="python3"
 hostmakedepends="qt6-base python3-PyQt-builder pkg-config"
-makedepends="python3-pyqt6-network-devel qt6-networkauth-devel"
+makedepends="python3-pyqt6-bindings qt6-networkauth-devel"
 depends="python3-pyqt6"
 short_desc="Qt6 bindings for NetworkAuth - Python 3"
 maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 license="GPL-3.0-only"
 homepage="https://www.riverbankcomputing.com/software/pyqtnetworkauth/"
 distfiles="$PYPI_SITE/P/PyQt6-NetworkAuth/PyQt6_NetworkAuth-${version}.tar.gz"
-checksum=cdfc0bfaea16a9e09f075bdafefb996aa9fdec392052ba4fb3cbac233c1958fb
+checksum=974983525437633a0f016c0ffa0dc311847089f253dfe6840b0ec8ce21dc8685
 lib32disabled=yes
 
 python3-pyqt6-networkauth-devel_package() {

From 5f4af9fe9eec2bfab7e9e6bd278e5c4ff828ba4d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:33 +0700
Subject: [PATCH 44/52] python3-pyqt6-webengine: update to 6.7.0.

---
 srcpkgs/python3-pyqt6-webengine/template | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/python3-pyqt6-webengine/template b/srcpkgs/python3-pyqt6-webengine/template
index 793b3372d032ab..5d718db6c023c7 100644
--- a/srcpkgs/python3-pyqt6-webengine/template
+++ b/srcpkgs/python3-pyqt6-webengine/template
@@ -1,21 +1,18 @@
 # Template file for 'python3-pyqt6-webengine'
 pkgname=python3-pyqt6-webengine
-version=6.6.0
-revision=2
+version=6.7.0
+revision=1
 build_style=sip-build
 build_helper=python3
 hostmakedepends="qt6-base python3-PyQt-builder pkg-config"
-makedepends="python3-pyqt6-gui-devel qt6-webengine-devel
- python3-pyqt6-network-devel python3-pyqt6-webchannel-devel
- python3-pyqt6-declarative-devel python3-pyqt6-printsupport-devel
- python3-pyqt6-widgets-devel"
+makedepends="qt6-webengine-devel qt6-webchannel-devel python3-pyqt6-bindings"
 depends="python3-pyqt6"
 short_desc="Python 3 bindings for Qt6 - WebEngine"
 maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 license="GPL-3.0-or-later"
 homepage="https://www.riverbankcomputing.com/software/pyqtwebengine/"
 distfiles="$PYPI_SITE/P/PyQt6_WebEngine/PyQt6_WebEngine-$version.tar.gz"
-checksum=d50b984c3f85e409e692b156132721522d4e8cf9b6c25e0cf927eea2dfb39487
+checksum=68edc7adb6d9e275f5de956881e79cca0d71fad439abeaa10d823bff5ac55001
 lib32disabled=yes
 
 case "$XBPS_TARGET_MACHINE" in

From 4c70f8a2183a420f3eba5ec834ddca8edd5a9fa3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:33 +0700
Subject: [PATCH 45/52] qt6ct: for qt6-6.7

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

diff --git a/srcpkgs/qt6ct/template b/srcpkgs/qt6ct/template
index 3b0d91b37474be..16903858d17284 100644
--- a/srcpkgs/qt6ct/template
+++ b/srcpkgs/qt6ct/template
@@ -1,10 +1,10 @@
 # Template file for 'qt6ct'
 pkgname=qt6ct
 version=0.9
-revision=1
+revision=2
 build_style=cmake
 hostmakedepends="qt6-tools qt6-base"
-makedepends="qt6-base-devel"
+makedepends="qt6-base-private-devel"
 depends="qt6-svg"
 short_desc="Qt6 Configuration Tool"
 maintainer="Adam Pschorr <adampschorr13@aol.com>"

From 8b4507e9c6de545456e6d7e9e627798b7da1c38b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:33 +0700
Subject: [PATCH 46/52] libqtxdg: for qt6-6.7

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

diff --git a/srcpkgs/libqtxdg/template b/srcpkgs/libqtxdg/template
index fd37e6374bac52..bb3d6c5a949c7a 100644
--- a/srcpkgs/libqtxdg/template
+++ b/srcpkgs/libqtxdg/template
@@ -1,10 +1,10 @@
 # Template file for 'libqtxdg'
 pkgname=libqtxdg
 version=4.0.0
-revision=1
+revision=2
 build_style=cmake
 hostmakedepends="pkg-config lxqt-build-tools qt6-base"
-makedepends="qt6-base qt6-svg-devel libglib-devel"
+makedepends="qt6-base-private-devel qt6-svg-devel libglib-devel"
 short_desc="Qt implementation of freedesktop.org XDG specifications"
 maintainer="Helmut Pozimski <helmut@pozimski.eu>"
 license="LGPL-2.1-or-later"

From 55a7607400f531628bfaa072a0fbd1ddb991f0c2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:33 +0700
Subject: [PATCH 47/52] kdeconnect: enable bluetooth

---
 srcpkgs/kdeconnect/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/kdeconnect/template b/srcpkgs/kdeconnect/template
index 514ae5a7733877..1d8495ed15471d 100644
--- a/srcpkgs/kdeconnect/template
+++ b/srcpkgs/kdeconnect/template
@@ -1,10 +1,10 @@
 # Template file for 'kdeconnect'
 pkgname=kdeconnect
 version=24.05.0
-revision=2
+revision=3
 build_style=cmake
 configure_args="-DWaylandScanner_EXECUTABLE=/usr/bin/wayland-scanner
- -DKDE_INSTALL_QMLDIR=lib/qt6/qml
+ -DKDE_INSTALL_QMLDIR=lib/qt6/qml -DBLUETOOTH_ENABLED=ON
  -DKF6_HOST_TOOLING=/usr/lib/cmake -DKDE_INSTALL_QTPLUGINDIR=lib/qt6/plugins"
 hostmakedepends="extra-cmake-modules qt6-tools
  pkg-config wayland-devel qt6-base python3 kf6-kdoctools kf6-kpackage kf6-kconfig
@@ -15,7 +15,7 @@ makedepends="kf6-kcmutils-devel kf6-kconfigwidgets-devel kf6-kdbusaddons-devel
  kf6-kirigami-devel kf6-knotifications-devel kf6-kstatusnotifieritem-devel
  kf6-kservice-devel kf6-qqc2-desktop-style-devel kf6-modemmanager-qt-devel
  kf6-kpackage-devel kf6-kpeople-devel kf6-kwayland-devel
- libfakekey-devel qca-qt6-devel pulseaudio-qt-devel qt6-base-devel
+ libfakekey-devel qca-qt6-devel pulseaudio-qt-devel qt6-base-private-devel
  qt6-connectivity-devel qt6-multimedia-devel kirigami-addons-devel"
 depends="kde-cli-tools qca-qt6 fuse-sshfs kf6-kirigami kf6-qqc2-desktop-style
  breeze-icons kirigami-addons qt6-plugin-tls-openssl"

From 5d221f3574e928cd733a6c716fe95d2b83b9bbc6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:34 +0700
Subject: [PATCH 48/52] calibre: fix build after pyqt6 restructure

---
 srcpkgs/calibre/template | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/srcpkgs/calibre/template b/srcpkgs/calibre/template
index b0302c2f9f247e..7907f71b18184e 100644
--- a/srcpkgs/calibre/template
+++ b/srcpkgs/calibre/template
@@ -6,6 +6,7 @@ build_helper=python3
 pycompile_dirs="/usr/lib/calibre/"
 hostmakedepends="pkg-config cmake python3-BeautifulSoup4 python3-Pillow
  python3-apsw python3-css-parser python3-dateutil sip qt6-base python3-py7zr
+ python3-pyqt6-devel-tools
  python3-html5-parser python3-msgpack python3-regex python3-mechanize
  mathjax liberation-fonts-ttf python3-zeroconf xdg-utils rapydscript-ng
  python3-PyQt-builder python3-Markdown python3-xxhash"
@@ -13,7 +14,9 @@ makedepends="libinput-devel libmagick-devel libmtp-devel libstemmer-devel
  libpodofo-devel libwmf-devel libxkbcommon-devel poppler-cpp-devel
  freetype-devel uchardet-devel openssl-devel icu-devel libusb-devel
  sqlite-devel tslib-devel hunspell-devel hyphen-devel libstemmer-devel
- python3-pyqt6-devel python3-pyqt6-webengine-devel"
+ python3-pyqt6-gui python3-pyqt6-svg python3-pyqt6-widgets python3-pyqt6-network
+ python3-pyqt6-printsupport python3-pyqt6-webengine python3-pyqt6-webchannel
+ qt6-base-private-devel python3-pyqt6-bindings python3-pyqt6-webengine-devel"
 depends="desktop-file-utils optipng poppler python3-BeautifulSoup4
  qt6-imageformats python3-Pygments python3-pycryptodome python3-xxhash
  python3-Markdown python3-Pillow python3-zeroconf python3-Pygments python3-apsw

From 44f6cb8ed6094d48243cd7806fc0fd547a874252 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:34 +0700
Subject: [PATCH 49/52] kf6-akonadi: for qt6-6.7

---
 srcpkgs/kf6-akonadi/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/kf6-akonadi/template b/srcpkgs/kf6-akonadi/template
index 75416c5d77d8d2..020dd9872cff24 100644
--- a/srcpkgs/kf6-akonadi/template
+++ b/srcpkgs/kf6-akonadi/template
@@ -1,7 +1,7 @@
 # Template file for 'kf6-akonadi'
 pkgname=kf6-akonadi
 version=24.02.2
-revision=2
+revision=3
 build_style=cmake
 build_helper="qemu"
 configure_args="-DKF6_HOST_TOOLING=/usr/lib/cmake

From 2ee17b9f4332111cbe123c68a51226169c1e6466 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:34 +0700
Subject: [PATCH 50/52] gpgme-qt6: for qt6-6.7

---
 srcpkgs/gpgme-qt6/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/gpgme-qt6/template b/srcpkgs/gpgme-qt6/template
index 628813a074f4d8..641b656910634e 100644
--- a/srcpkgs/gpgme-qt6/template
+++ b/srcpkgs/gpgme-qt6/template
@@ -7,7 +7,7 @@
 #          -> colord -> sane -> poppler -> gpgme -> qt5 -> SDL2
 pkgname=gpgme-qt6
 version=1.23.2
-revision=4
+revision=5
 build_style=gnu-configure
 configure_args="--enable-fd-passing
  --with-libgpg-error-prefix=$XBPS_CROSS_BASE/usr

From 7e3dfd72925e3297c7943bdebd96209347786b31 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:34 +0700
Subject: [PATCH 51/52] kf6-kdeclarative: for qt6-6.7

---
 srcpkgs/kf6-kdeclarative/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/kf6-kdeclarative/template b/srcpkgs/kf6-kdeclarative/template
index 4270df46f26c5d..0ab17595d8b6d3 100644
--- a/srcpkgs/kf6-kdeclarative/template
+++ b/srcpkgs/kf6-kdeclarative/template
@@ -1,7 +1,7 @@
 # Template file for 'kf6-kdeclarative'
 pkgname=kf6-kdeclarative
 version=6.3.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DKDE_INSTALL_QMLDIR=lib/qt6/qml"
 hostmakedepends="extra-cmake-modules qt6-tools qt6-base

From c03f5cebef576bf1793a3d5fe43b3c1596d3894a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:34 +0700
Subject: [PATCH 52/52] kf6-ksvg: for qt6-6.7

---
 srcpkgs/kf6-ksvg/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/kf6-ksvg/template b/srcpkgs/kf6-ksvg/template
index 37379482c5c7c7..a5cd9a3fc94eeb 100644
--- a/srcpkgs/kf6-ksvg/template
+++ b/srcpkgs/kf6-ksvg/template
@@ -1,7 +1,7 @@
 # Template file for 'kf6-ksvg'
 pkgname=kf6-ksvg
 version=6.3.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DKDE_INSTALL_QMLDIR=lib/qt6/qml
  -DKDE_INSTALL_QTPLUGINDIR=lib/qt6/plugins"

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

* Re: [PR PATCH] [Updated] Qt6 6.7.2
  2024-06-23  3:44 [PR PATCH] Qt6 6.7.2 sgn
@ 2024-06-23  7:51 ` sgn
  2024-06-23 11:35 ` sgn
  2024-06-23 11:45 ` [PR PATCH] [Merged]: " sgn
  2 siblings, 0 replies; 4+ messages in thread
From: sgn @ 2024-06-23  7:51 UTC (permalink / raw)
  To: ml

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

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

https://github.com/sgn/void-packages qt6-6.7.2
https://github.com/void-linux/void-packages/pull/50942

Qt6 6.7.2
<!-- Uncomment relevant sections and delete options which are not applicable -->
[ci skip][skip ci]
#### Testing the changes
- I tested the changes in this PR: **YES**|**briefly**|**NO**

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


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

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

From 4c9a6e4fe3d696e7b62a29441726997f1d296826 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:27 +0700
Subject: [PATCH 01/52] New package: re2.10-2023.03.01

---
 srcpkgs/libre2.10/template | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)
 create mode 100644 srcpkgs/libre2.10/template

diff --git a/srcpkgs/libre2.10/template b/srcpkgs/libre2.10/template
new file mode 100644
index 00000000000000..ec11d883e67fa4
--- /dev/null
+++ b/srcpkgs/libre2.10/template
@@ -0,0 +1,25 @@
+# Template file for 'libre2.10'
+#
+# packaged to avoid rebuild electron and qt5-webengine
+pkgname=libre2.10
+version=2023.03.01
+revision=1
+build_style=gnu-makefile
+short_desc="Efficient, principled regular expression library"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="BSD-3-Clause"
+homepage="https://github.com/google/re2"
+distfiles="https://github.com/google/re2/archive/${version//./-}.tar.gz"
+checksum=7a9a4824958586980926a300b4717202485c4b4115ac031822e29aa4ef207e48
+provides="re2-${version}"
+
+post_install() {
+	vlicense LICENSE
+	# This package to provides libre2.so.10,
+	# those packages that aint rebuilt will use this package
+	# They can be rebuild with new re2-devel
+	rm -rf ${DESTDIR}/usr/include
+	rm -rf ${DESTDIR}/usr/lib/*.a
+	rm -rf ${DESTDIR}/usr/lib/*.so
+	rm -rf ${DESTDIR}/usr/lib/pkgconfig
+}

From aab69d4332d720b8b68ced061f213d122b33fd2b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:28 +0700
Subject: [PATCH 02/52] re2: update to 2024.06.01.

---
 common/shlibs                        |  2 +-
 srcpkgs/re2/patches/pkg-config.patch | 41 ++++++++++++++++++++++++++++
 srcpkgs/re2/template                 | 16 +++++++----
 3 files changed, 53 insertions(+), 6 deletions(-)
 create mode 100644 srcpkgs/re2/patches/pkg-config.patch

diff --git a/common/shlibs b/common/shlibs
index 4ebfd6bb20f6ad..092fd9b409d500 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -1312,7 +1312,7 @@ librumpdev_audio.so.0 netbsd-rumpkernel-20140526_3
 librumpclient.so.0 netbsd-rumpkernel-20140526_3
 libdotconf.so.0 dotconf-1.3_1
 libspeechd.so.2 speech-dispatcher-0.8_1
-libre2.so.10 re2-2023.03.01_1
+libre2.so.11 re2-2024.06.01_1
 libminizip.so.1 minizip-1.2.7_1
 libsrtp2.so.1 libsrtp-2.1.0_1
 libjsoncpp.so.25 jsoncpp-1.9.5_1
diff --git a/srcpkgs/re2/patches/pkg-config.patch b/srcpkgs/re2/patches/pkg-config.patch
new file mode 100644
index 00000000000000..acbbd7f6974b88
--- /dev/null
+++ b/srcpkgs/re2/patches/pkg-config.patch
@@ -0,0 +1,41 @@
+--- a/re2.pc.in
++++ b/re2.pc.in
+@@ -3,7 +3,7 @@ libdir=@CMAKE_INSTALL_FULL_LIBDIR@
+ 
+ Name: re2
+ Description: RE2 is a fast, safe, thread-friendly regular expression engine.
+-Requires: @REQUIRES@
++Requires: absl_base absl_core_headers absl_strings
+ Version: @SONAME@.0.0
+ Cflags: -pthread -I${includedir}
+ Libs: -pthread -L${libdir} -lre2
+--- a/re2Config.cmake.in
++++ b/re2Config.cmake.in
+@@ -13,10 +13,6 @@ endif()
+ 
+ find_dependency(absl REQUIRED)
+ 
+-if(@RE2_USE_ICU@)
+-  find_dependency(ICU REQUIRED COMPONENTS uc)
+-endif()
+-
+ check_required_components(re2)
+ 
+ if(TARGET re2::re2)
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -156,11 +156,12 @@ foreach(dep ${ABSL_DEPS})
+   # Work around https://gitlab.kitware.com/cmake/cmake/-/issues/16899. >:(
+   string(PREPEND dep "^")
+   string(REGEX REPLACE "\\^absl_" "absl::" dep ${dep})
+-  target_link_libraries(re2 PUBLIC ${dep})
++  target_link_libraries(re2 PRIVATE ${dep})
+ endforeach()
++target_link_libraries(re2 PUBLIC absl::base absl::core_headers absl::strings)
+ 
+ if(RE2_USE_ICU)
+-  target_link_libraries(re2 PUBLIC ICU::uc)
++  target_link_libraries(re2 PRIVATE ICU::uc)
+ endif()
+ 
+ if(RE2_BUILD_TESTING)
diff --git a/srcpkgs/re2/template b/srcpkgs/re2/template
index ec6abba965ad1b..47cad9639f42c3 100644
--- a/srcpkgs/re2/template
+++ b/srcpkgs/re2/template
@@ -1,14 +1,20 @@
 # Template file for 're2'
 pkgname=re2
-version=2023.03.01
+version=2024.06.01
 revision=1
-build_style=gnu-makefile
+build_style=cmake
+configure_args="-DBUILD_SHARED_LIBS=ON -DRE2_USE_ICU=ON"
+hostmakedepends="pkg-config"
+makedepends="abseil-cpp-devel icu-devel"
+# This dependency to avoid rebuild electron with new re2
+# Drop whenever those packages are rebuilt or dropped
+depends="libre2.10"
 short_desc="Efficient, principled regular expression library"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="BSD-3-Clause"
 homepage="https://github.com/google/re2"
 distfiles="https://github.com/google/re2/archive/${version//./-}.tar.gz"
-checksum=7a9a4824958586980926a300b4717202485c4b4115ac031822e29aa4ef207e48
+checksum=7326c74cddaa90b12090fcfc915fe7b4655723893c960ee3c2c66e85c5504b6c
 
 post_install() {
 	vlicense LICENSE
@@ -16,11 +22,11 @@ post_install() {
 
 re2-devel_package() {
 	short_desc+=" - development files"
-	depends="${sourcepkg}-${version}_${revision}"
+	depends="${sourcepkg}-${version}_${revision} abseil-cpp-devel"
 	pkg_install() {
 		vmove usr/include
-		vmove "usr/lib/*.a"
 		vmove "usr/lib/*.so"
 		vmove usr/lib/pkgconfig
+		vmove usr/lib/cmake
 	}
 }

From e185acb30d49d0adc405d428357816f3efdd2680 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 08:07:54 +0700
Subject: [PATCH 03/52] bloaty: for re2-11

---
 srcpkgs/bloaty/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/bloaty/template b/srcpkgs/bloaty/template
index 3309afa1792674..9aaead50324951 100644
--- a/srcpkgs/bloaty/template
+++ b/srcpkgs/bloaty/template
@@ -1,7 +1,7 @@
 # Template file for 'bloaty'
 pkgname=bloaty
 version=1.1
-revision=15
+revision=16
 build_style=cmake
 hostmakedepends="pkg-config protobuf"
 makedepends="capstone-devel protobuf-devel re2-devel zlib-devel"

From 27d087fdabb0cf32e53360110db65f892c3c1aec Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 08:12:31 +0700
Subject: [PATCH 04/52] cbang: for re2-11

---
 srcpkgs/cbang/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/cbang/template b/srcpkgs/cbang/template
index ec8b5e77e39be2..8b2e502200eff6 100644
--- a/srcpkgs/cbang/template
+++ b/srcpkgs/cbang/template
@@ -1,7 +1,7 @@
 # Template file for 'cbang'
 pkgname=cbang
 version=1.8.0
-revision=2
+revision=3
 build_style=scons
 make_build_args="sharedlib=1 staticlib=1"
 make_install_args="${make_build_args}"

From 3869ea53577080168c5cb70fb3781a162ec9ab02 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 08:12:31 +0700
Subject: [PATCH 05/52] grpc: for re2-11

---
 srcpkgs/grpc/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/grpc/template b/srcpkgs/grpc/template
index b2c090a9a2f7e3..ac9610bcf84a43 100644
--- a/srcpkgs/grpc/template
+++ b/srcpkgs/grpc/template
@@ -1,7 +1,7 @@
 # Template file for 'grpc'
 pkgname=grpc
 version=1.61.1
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DBUILD_SHARED_LIBS=ON
  -DgRPC_CARES_PROVIDER=package -DgRPC_PROTOBUF_PROVIDER=package

From 0421506634b47015e2e9747adb0c42ea0d41f384 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 08:12:32 +0700
Subject: [PATCH 06/52] sysdig: for re2-11

---
 srcpkgs/sysdig/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/sysdig/template b/srcpkgs/sysdig/template
index 2a02d1d115b849..aecce7de10ba4f 100644
--- a/srcpkgs/sysdig/template
+++ b/srcpkgs/sysdig/template
@@ -1,7 +1,7 @@
 # Template file for 'sysdig'
 pkgname=sysdig
 version=0.33.1
-revision=6
+revision=7
 _falcover=59fb313475b82f842e9e9bbc1e0e629428c0a4cf
 build_style=cmake
 configure_args="-DSYSDIG_VERSION=${version} -DUSE_BUNDLED_DEPS=OFF

From c3d1bcf156cd9c32bc615ed773cf587d40d66bab Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 08:12:32 +0700
Subject: [PATCH 07/52] dnsdist: for re2-11

---
 srcpkgs/dnsdist/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/dnsdist/template b/srcpkgs/dnsdist/template
index 8b6c9a089ecca4..069767d9726c36 100644
--- a/srcpkgs/dnsdist/template
+++ b/srcpkgs/dnsdist/template
@@ -1,7 +1,7 @@
 # Template file for 'dnsdist'
 pkgname=dnsdist
 version=1.9.0
-revision=1
+revision=2
 build_style=gnu-configure
 configure_args="--with-pic --with-gnu-ld --with-libsodium --with-re2
  --with-net-snmp --with-libcap --with-libssl --enable-dnscrypt --with-nghttp2

From 3ab24c9b61559cb8c071d2770534db7ada4d6f23 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 08:12:33 +0700
Subject: [PATCH 08/52] mtxclient: for re2-11

---
 srcpkgs/mtxclient/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/mtxclient/template b/srcpkgs/mtxclient/template
index 77413cbf199095..99d61932d3b56b 100644
--- a/srcpkgs/mtxclient/template
+++ b/srcpkgs/mtxclient/template
@@ -1,7 +1,7 @@
 # Template file for 'mtxclient'
 pkgname=mtxclient
 version=0.10.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DBUILD_LIB_TESTS=OFF -DBUILD_LIB_EXAMPLES=OFF"
 hostmakedepends="pkg-config"

From 645924082530702a004c3c9f1e220e9304a5f590 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 08:12:33 +0700
Subject: [PATCH 09/52] python3-grpcio: for re2-11

---
 srcpkgs/python3-grpcio/template | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/srcpkgs/python3-grpcio/template b/srcpkgs/python3-grpcio/template
index ee25192910a3ad..c255fca6481415 100644
--- a/srcpkgs/python3-grpcio/template
+++ b/srcpkgs/python3-grpcio/template
@@ -1,7 +1,7 @@
 # Template file for 'python3-grpcio'
 pkgname=python3-grpcio
 version=1.60.1
-revision=1
+revision=2
 build_style=python3-module
 hostmakedepends="python3-setuptools python3-six python3-Cython0.29"
 makedepends="python3-devel zlib-devel c-ares-devel re2-devel openssl-devel
@@ -14,10 +14,6 @@ homepage="https://grpc.io"
 distfiles="${PYPI_SITE}/g/grpcio/grpcio-${version}.tar.gz"
 checksum=dd1d3a8d1d2e50ad9b59e10aa7f07c7d1be2b367f3f2d33c5fade96ed5460962
 
-if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
-	makedepends+=" libexecinfo-devel"
-fi
-
 export GRPC_PYTHON_BUILD_SYSTEM_ABSL=1
 export GRPC_PYTHON_BUILD_SYSTEM_ZLIB=1
 export GRPC_PYTHON_BUILD_SYSTEM_CARES=1

From 707b9f93e64dd3b0e8044fd3ddc7a2f0b9c6261f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:28 +0700
Subject: [PATCH 10/52] qt6-base: update to 6.7.2.

---
 srcpkgs/qt6-base-private-devel                |  1 +
 .../qt6-base/patches/libxkbcommon1.6.0.patch  | 39 -------------------
 srcpkgs/qt6-base/patches/markdown.patch       |  6 +--
 srcpkgs/qt6-base/patches/musl-limits.patch    | 20 ----------
 .../qt6-base/patches/musl-test-image.patch    |  8 ++--
 .../qt6-base/patches/musl-usr-path-hack.patch |  6 +--
 ...urce-root-dir-last-modified-is-valid.patch |  6 +--
 .../qt6-base/patches/x86-qround-passed.patch  |  8 ++--
 srcpkgs/qt6-base/patches/zfs-storage.patch    | 17 ++++----
 srcpkgs/qt6-base/template                     | 37 ++++++++++++++++--
 10 files changed, 59 insertions(+), 89 deletions(-)
 create mode 120000 srcpkgs/qt6-base-private-devel
 delete mode 100644 srcpkgs/qt6-base/patches/libxkbcommon1.6.0.patch
 delete mode 100644 srcpkgs/qt6-base/patches/musl-limits.patch

diff --git a/srcpkgs/qt6-base-private-devel b/srcpkgs/qt6-base-private-devel
new file mode 120000
index 00000000000000..8ddee598d5edc4
--- /dev/null
+++ b/srcpkgs/qt6-base-private-devel
@@ -0,0 +1 @@
+qt6-base
\ No newline at end of file
diff --git a/srcpkgs/qt6-base/patches/libxkbcommon1.6.0.patch b/srcpkgs/qt6-base/patches/libxkbcommon1.6.0.patch
deleted file mode 100644
index 7c1b0e8e9851e5..00000000000000
--- a/srcpkgs/qt6-base/patches/libxkbcommon1.6.0.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 8af35d27e8f02bbb99aef4ac495ed406e50e3cca Mon Sep 17 00:00:00 2001
-From: Liang Qi <liang.qi@qt.io>
-Date: Tue, 10 Oct 2023 14:08:48 +0200
-Subject: [PATCH] xkb: fix build with libxkbcommon 1.6.0 and later
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-A few XKB_KEY_dead_* defines got removed from 1.6.0. See also
-https://github.com/xkbcommon/libxkbcommon/blob/6073565903488cb5b9a8d37fdc4a7c2f9d7ad04d/NEWS#L9-L14
-https://gitlab.freedesktop.org/xorg/proto/xorgproto/-/merge_requests/70/diffs?commit_id=cb44799b72f611eb4c9d7cc185bc3b09e070be08
-
-Pick-to: 6.6 6.5 6.2 5.15
-Fixes: QTBUG-117950
-Change-Id: I55861868f2bb29c553d68365fa9b9b6ed01c9aea
-Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
----
- src/gui/platform/unix/qxkbcommon.cpp | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/gui/platform/unix/qxkbcommon.cpp b/src/gui/platform/unix/qxkbcommon.cpp
-index 26d87c5ff59..7b611790c67 100644
---- a/src/gui/platform/unix/qxkbcommon.cpp
-+++ b/src/gui/platform/unix/qxkbcommon.cpp
-@@ -237,10 +237,14 @@ static constexpr const auto KeyTbl = qMakeArray(
-         Xkb2Qt<XKB_KEY_dead_small_schwa,        Qt::Key_Dead_Small_Schwa>,
-         Xkb2Qt<XKB_KEY_dead_capital_schwa,      Qt::Key_Dead_Capital_Schwa>,
-         Xkb2Qt<XKB_KEY_dead_greek,              Qt::Key_Dead_Greek>,
-+/* The following four XKB_KEY_dead keys got removed in libxkbcommon 1.6.0
-+   The define check is kind of version check here. */
-+#ifdef XKB_KEY_dead_lowline
-         Xkb2Qt<XKB_KEY_dead_lowline,            Qt::Key_Dead_Lowline>,
-         Xkb2Qt<XKB_KEY_dead_aboveverticalline,  Qt::Key_Dead_Aboveverticalline>,
-         Xkb2Qt<XKB_KEY_dead_belowverticalline,  Qt::Key_Dead_Belowverticalline>,
-         Xkb2Qt<XKB_KEY_dead_longsolidusoverlay, Qt::Key_Dead_Longsolidusoverlay>,
-+#endif
- 
-         // Special keys from X.org - This include multimedia keys,
-         // wireless/bluetooth/uwb keys, special launcher keys, etc.
diff --git a/srcpkgs/qt6-base/patches/markdown.patch b/srcpkgs/qt6-base/patches/markdown.patch
index 249dd8bf9d3517..883256e157c00f 100644
--- a/srcpkgs/qt6-base/patches/markdown.patch
+++ b/srcpkgs/qt6-base/patches/markdown.patch
@@ -1,6 +1,6 @@
---- qt6-base-6.6.0/tests/auto/gui/text/qtextmarkdownimporter/tst_qtextmarkdownimporter.cpp	2023-09-13 18:02:48.000000000 +0200
-+++ -	2023-10-13 20:01:07.568899554 +0200
-@@ -223,10 +223,12 @@
+--- a/tests/auto/gui/text/qtextmarkdownimporter/tst_qtextmarkdownimporter.cpp
++++ b/tests/auto/gui/text/qtextmarkdownimporter/tst_qtextmarkdownimporter.cpp
+@@ -225,10 +225,12 @@ void tst_QTextMarkdownImporter::lists_da
      QTest::newRow("numeric lists nested in empty lists")
              << "- \n    1.  a\n    2.  b\n- c\n  1.\n       + d\n" << 0 << 1 << 4 << false
              << "- \n    1.  a\n    2.  b\n- c 1. + d\n";
diff --git a/srcpkgs/qt6-base/patches/musl-limits.patch b/srcpkgs/qt6-base/patches/musl-limits.patch
deleted file mode 100644
index da6d272d99deb3..00000000000000
--- a/srcpkgs/qt6-base/patches/musl-limits.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- qt6-base-6.4.2.orig/qmake/library/ioutils.cpp
-+++ qt6-base-6.4.2/qmake/library/ioutils.cpp
-@@ -15,6 +15,7 @@
- #  include <unistd.h>
- #  include <utime.h>
- #  include <fcntl.h>
-+#  include <limits.h>
- #  include <errno.h>
- #endif
- 
---- qt6-base-6.4.2.orig/src/corelib/io/qstorageinfo_unix.cpp
-+++ qt6-base-6.4.2/src/corelib/io/qstorageinfo_unix.cpp
-@@ -23,6 +23,7 @@
- #  include <sys/vfs.h>
- #  include <mntent.h>
- #elif defined(Q_OS_LINUX) || defined(Q_OS_HURD)
-+#  include <limits.h>
- #  include <mntent.h>
- #  include <sys/statvfs.h>
- #  include <sys/sysmacros.h>
diff --git a/srcpkgs/qt6-base/patches/musl-test-image.patch b/srcpkgs/qt6-base/patches/musl-test-image.patch
index b966a22c12a76d..73fec8689e4451 100644
--- a/srcpkgs/qt6-base/patches/musl-test-image.patch
+++ b/srcpkgs/qt6-base/patches/musl-test-image.patch
@@ -1,6 +1,6 @@
---- qt6-base-6.4.2.orig/tests/auto/gui/image/qimage/tst_qimage.cpp
-+++ qt6-base-6.4.2/tests/auto/gui/image/qimage/tst_qimage.cpp
-@@ -1806,6 +1806,8 @@ void tst_QImage::smoothScale2()
+--- a/tests/auto/gui/image/qimage/tst_qimage.cpp
++++ b/tests/auto/gui/image/qimage/tst_qimage.cpp
+@@ -1827,6 +1827,8 @@ void tst_QImage::smoothScale2()
      QRgb expected = opaque ? qRgb(63, 127, 255) : qRgba(31, 63, 127, 127);
      img.fill(expected);
  
@@ -9,7 +9,7 @@
      // scale x down, y down
      QImage scaled = img.scaled(QSize(1, 1), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
      QRgb pixel = scaled.pixel(0, 0);
-@@ -1869,6 +1871,7 @@ void tst_QImage::smoothScale2()
+@@ -1890,6 +1892,7 @@ void tst_QImage::smoothScale2()
              QCOMPARE(qBlue(pixel), qBlue(expected));
          }
      }
diff --git a/srcpkgs/qt6-base/patches/musl-usr-path-hack.patch b/srcpkgs/qt6-base/patches/musl-usr-path-hack.patch
index 92eae8431aea17..0eed034a1ecd1e 100644
--- a/srcpkgs/qt6-base/patches/musl-usr-path-hack.patch
+++ b/srcpkgs/qt6-base/patches/musl-usr-path-hack.patch
@@ -6,9 +6,9 @@ This breaks qt6-webengine's search path for translations.
 Using realpath instead would probably be a more correct solution.
 
 ---
---- qt6-base-6.4.2.orig/src/corelib/global/qlibraryinfo.cpp
-+++ qt6-base-6.4.2/src/corelib/global/qlibraryinfo.cpp
-@@ -358,6 +358,12 @@ static QString getRelocatablePrefix(QLib
+--- a/src/corelib/global/qlibraryinfo.cpp
++++ b/src/corelib/global/qlibraryinfo.cpp
+@@ -383,6 +383,12 @@ static QString getRelocatablePrefix(QLib
      int result = dladdr(reinterpret_cast<void *>(&QLibraryInfo::isDebugBuild), &info);
      if (result > 0 && info.dli_fname)
          prefixPath = prefixFromQtCoreLibraryHelper(QString::fromLocal8Bit(info.dli_fname));
diff --git a/srcpkgs/qt6-base/patches/resource-root-dir-last-modified-is-valid.patch b/srcpkgs/qt6-base/patches/resource-root-dir-last-modified-is-valid.patch
index 282b583330ce03..b3c45a50a4fa86 100644
--- a/srcpkgs/qt6-base/patches/resource-root-dir-last-modified-is-valid.patch
+++ b/srcpkgs/qt6-base/patches/resource-root-dir-last-modified-is-valid.patch
@@ -1,6 +1,6 @@
---- qt6-base-6.4.2.orig/tests/auto/corelib/io/qresourceengine/tst_qresourceengine.cpp
-+++ qt6-base-6.4.2/tests/auto/corelib/io/qresourceengine/tst_qresourceengine.cpp
-@@ -592,7 +592,10 @@ void tst_QResourceEngine::lastModified()
+--- a/tests/auto/corelib/io/qresourceengine/tst_qresourceengine.cpp
++++ b/tests/auto/corelib/io/qresourceengine/tst_qresourceengine.cpp
+@@ -624,7 +624,10 @@ void tst_QResourceEngine::lastModified()
      {
          QFileInfo fi(":/");
          QVERIFY(fi.exists());
diff --git a/srcpkgs/qt6-base/patches/x86-qround-passed.patch b/srcpkgs/qt6-base/patches/x86-qround-passed.patch
index f658ed833e4f89..3229ec4db586d9 100644
--- a/srcpkgs/qt6-base/patches/x86-qround-passed.patch
+++ b/srcpkgs/qt6-base/patches/x86-qround-passed.patch
@@ -1,6 +1,6 @@
---- qt6-base-6.4.2.orig/tests/auto/corelib/global/qglobal/tst_qglobal.cpp
-+++ qt6-base-6.4.2/tests/auto/corelib/global/qglobal/tst_qglobal.cpp
-@@ -599,18 +599,14 @@ void tst_QGlobal::qRoundFloats() {
+--- a/tests/auto/corelib/global/qglobal/tst_qglobal.cpp
++++ b/tests/auto/corelib/global/qglobal/tst_qglobal.cpp
+@@ -766,18 +766,14 @@ void tst_QGlobal::qRoundFloats() {
      QFETCH(float, expected);
  
  #if !(defined(Q_PROCESSOR_ARM_64) && (__has_builtin(__builtin_round) || defined(Q_CC_GNU)) && !defined(Q_CC_CLANG))
@@ -23,7 +23,7 @@
  }
  
  void tst_QGlobal::qRoundDoubles_data() {
-@@ -628,18 +624,14 @@ void tst_QGlobal::qRoundDoubles() {
+@@ -795,18 +791,14 @@ void tst_QGlobal::qRoundDoubles() {
      QFETCH(double, expected);
  
  #if !(defined(Q_PROCESSOR_ARM_64) && (__has_builtin(__builtin_round) || defined(Q_CC_GNU)) && !defined(Q_CC_CLANG))
diff --git a/srcpkgs/qt6-base/patches/zfs-storage.patch b/srcpkgs/qt6-base/patches/zfs-storage.patch
index 0473836ba7d665..f26fb107bcf47c 100644
--- a/srcpkgs/qt6-base/patches/zfs-storage.patch
+++ b/srcpkgs/qt6-base/patches/zfs-storage.patch
@@ -1,11 +1,10 @@
---- qt6-base-6.4.2.orig/tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp
-+++ qt6-base-6.4.2/tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp
-@@ -165,6 +165,8 @@ void tst_QStorageInfo::tempFile()
- #ifdef Q_OS_LINUX
-     if (storage1.fileSystemType() == "btrfs")
-         QSKIP("This test doesn't work on btrfs, probably due to a btrfs bug");
-+    if (storage1.fileSystemType() == "zfs")
-+        QSKIP("This test doesn't work on zfs");
+--- a/tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp
++++ b/tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp
+@@ -220,6 +220,7 @@ static QString suitableDirectoryForWriti
+         // See comment below. If we can get a tmpfs, let's try it.
+         "btrfs",
+         "xfs",
++        "zfs",
  #endif
+     };
  
-     qint64 free = storage1.bytesFree();
diff --git a/srcpkgs/qt6-base/template b/srcpkgs/qt6-base/template
index 3311599dd87d88..4b63dc5d8402b8 100644
--- a/srcpkgs/qt6-base/template
+++ b/srcpkgs/qt6-base/template
@@ -1,7 +1,9 @@
 # Template file for 'qt6-base'
+#
+# On update rebuild all pkg with qt6-base-private-devel
 pkgname=qt6-base
-version=6.6.0
-revision=2
+version=6.7.2
+revision=1
 build_style=cmake
 configure_args="-DINSTALL_DATADIR=share/qt6
  -DINSTALL_ARCHDATADIR=lib${XBPS_TARGET_WORDSIZE}/qt6
@@ -13,12 +15,13 @@ configure_args="-DINSTALL_DATADIR=share/qt6
  -DINSTALL_SYSCONFDIR=/etc/xdg
  -DQT_FEATURE_openssl_linked=ON
  -DQT_FEATURE_system_sqlite=ON
+ -DQT_FEATURE_system_xcb_xinput=ON
  -DQT_FEATURE_libproxy=ON
  -DQT_FEATURE_qmake=ON
  -DBUILD_WITH_PCH=OFF"
 hostmakedepends="perl pkg-config xmlstarlet"
 makedepends="zlib-devel libzstd-devel dbus-devel libmd4c-devel
- double-conversion-devel glib-devel libxcb-devel
+ double-conversion-devel glib-devel libxcb-devel libSM-devel
  xcb-util-image-devel xcb-util-keysyms-devel
  xcb-util-renderutil-devel xcb-util-wm-devel
  MesaLib-devel pcre2-devel icu-devel mtdev-devel harfbuzz-devel
@@ -32,7 +35,7 @@ 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=039d53312acb5897a9054bd38c9ccbdab72500b71fdccdb3f4f0844b0dd39e0e
+checksum=c5f22a5e10fb162895ded7de0963328e7307611c688487b5d152c9ee64767599
 python_version=3
 
 if [ "$CROSS_BUILD" ]; then
@@ -46,6 +49,12 @@ if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args+=" -DQT_BUILD_TESTS=ON"
 fi
 
+subpackages="qt6-concurrent qt6-core qt6-dbus qt6-gui qt6-network
+ qt6-opengl-widgets qt6-plugin-mysql qt6-plugin-networkinformation
+ qt6-plugin-odbc qt6-plugin-pgsql qt6-plugin-sqlite qt6-plugin-tls-openssl
+ qt6-plugin-tls-qcertonly qt6-printsupport qt6-sql qt6-test qt6-widgets qt6-xml
+ qt6-base-private-devel qt6-base-doc qt6-base-devel"
+
 do_check() {
 	cd build
 	export QT_QPA_PLATFORM=offscreen
@@ -70,6 +79,11 @@ do_check() {
 	failing_tests+=" mockplugins test_import_plugins
 	 test_static_resources test_generating_cpp_exports"
 	failing_tests+=" tst_qstorageinfo"
+	# cmake
+	failing_tests+=" test_qt_add_resources_rebuild test_collecting_plugins
+	 test_standalone_test test_qt_extract_metatypes"
+	# Failing readonly and out-of-memory
+	failing_tests+=" tst_qsharedmemory"
 	if [ "$XBPS_TARGET_LIBC" = musl ]; then
 		# Some glibc specific DNS Lookup
 		failing_tests+=" tst_qdnslookup"
@@ -260,6 +274,21 @@ qt6-plugin-networkinformation_package() {
 	}
 }
 
+qt6-base-private-devel_package() {
+	short_desc+=" - private development files"
+	depends="qt6-base-devel>=${version}_${revision}"
+	pkg_install() {
+		for dir in $(cd ${DESTDIR} && pwd >&2 && find usr/include -type d -name private); do
+			vmove "$dir"
+		done
+		vmove "usr/lib/cmake/*Private"
+		vmove "usr/lib/qt6/metatypes/*private_*_metatypes.json"
+		# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=921930
+		# vmove "usr/lib/qt6/mkspecs/modules/*_private.pri"
+		vmove "usr/lib/qt6/modules/*Private.json"
+	}
+}
+
 qt6-base-devel_package() {
 	short_desc+=" - Development files"
 	depends="qt6-base>=${version}_${revision}

From 59dc9e1d723269d85d12d4560bdc7862b3a7a4b4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:28 +0700
Subject: [PATCH 11/52] qt6-declarative: update to 6.7.2.

---
 srcpkgs/qt6-declarative-private-devel         |  1 +
 .../patches/bin-qml-location.patch            | 62 +++++++++----------
 srcpkgs/qt6-declarative/template              | 35 ++++++++---
 3 files changed, 57 insertions(+), 41 deletions(-)
 create mode 120000 srcpkgs/qt6-declarative-private-devel

diff --git a/srcpkgs/qt6-declarative-private-devel b/srcpkgs/qt6-declarative-private-devel
new file mode 120000
index 00000000000000..fd03a4809f3ebf
--- /dev/null
+++ b/srcpkgs/qt6-declarative-private-devel
@@ -0,0 +1 @@
+qt6-declarative
\ No newline at end of file
diff --git a/srcpkgs/qt6-declarative/patches/bin-qml-location.patch b/srcpkgs/qt6-declarative/patches/bin-qml-location.patch
index 9323aec00b64ce..84f6dfbe663c44 100644
--- a/srcpkgs/qt6-declarative/patches/bin-qml-location.patch
+++ b/srcpkgs/qt6-declarative/patches/bin-qml-location.patch
@@ -1,5 +1,5 @@
---- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmldebugtranslationclient/tst_qqmldebugtranslationclient.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmldebugtranslationclient/tst_qqmldebugtranslationclient.cpp
+--- a/tests/auto/qml/debugger/qqmldebugtranslationclient/tst_qqmldebugtranslationclient.cpp
++++ b/tests/auto/qml/debugger/qqmldebugtranslationclient/tst_qqmldebugtranslationclient.cpp
 @@ -71,6 +71,9 @@ private:
          m_currentOutputLine = 0;
  
@@ -10,8 +10,8 @@
          auto services = QQmlDebugTranslationServiceImpl::s_key;
          auto extraArgs = testFile(QMLFILE);
          auto block = true;
---- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp
+--- a/tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp
++++ b/tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp
 @@ -47,7 +47,11 @@ tst_QQmlInspector::tst_QQmlInspector()
  QQmlDebugTest::ConnectResult tst_QQmlInspector::startQmlProcess(const QString &qmlFile,
                                                                  bool restrictServices)
@@ -25,9 +25,9 @@
                                    restrictServices ? QStringLiteral("QmlInspector") : QString(),
                                    testFile(qmlFile), true);
  }
---- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp
-@@ -179,10 +179,18 @@ private:
+--- a/tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp
++++ b/tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp
+@@ -181,10 +181,18 @@ private:
          CheckType = CheckMessageType | CheckDetailType | CheckLine | CheckColumn | CheckFileEndsWith
      };
  
@@ -47,8 +47,8 @@
      void checkProcessTerminated();
      void checkTraceReceived();
      void checkJsHeap();
---- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/tst_qqmldebuggingenabler.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/tst_qqmldebuggingenabler.cpp
+--- a/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/tst_qqmldebuggingenabler.cpp
++++ b/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/tst_qqmldebuggingenabler.cpp
 @@ -85,8 +85,12 @@ void tst_QQmlDebuggingEnabler::qmlscene(
      QFETCH(bool, blockMode);
      QFETCH(QStringList, services);
@@ -64,8 +64,8 @@
      m_process->setMaximumBindErrors(1);
      m_process->start(QStringList()
                       << QString::fromLatin1("-qmljsdebugger=connector:%1%2%3%4")
---- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmlenginecontrol/tst_qqmlenginecontrol.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmlenginecontrol/tst_qqmlenginecontrol.cpp
+--- a/tests/auto/qml/debugger/qqmlenginecontrol/tst_qqmlenginecontrol.cpp
++++ b/tests/auto/qml/debugger/qqmlenginecontrol/tst_qqmlenginecontrol.cpp
 @@ -66,7 +66,11 @@ tst_QQmlEngineControl::tst_QQmlEngineCon
  QQmlDebugTest::ConnectResult tst_QQmlEngineControl::connectTo(const QString &file,
                                                              bool restrictServices)
@@ -79,11 +79,11 @@
                                    restrictServices ? QStringLiteral("EngineControl") : QString(),
                                    testFile(file), true);
  }
---- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp
+--- a/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp
++++ b/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp
 @@ -70,8 +70,11 @@ tst_QQmlEngineDebugInspectorIntegration:
  
- QQmlDebugTest::ConnectResult tst_QQmlEngineDebugInspectorIntegration::init(bool restrictServices)
+ QQmlDebugTest::ConnectResult tst_QQmlEngineDebugInspectorIntegration::runAndConnect(bool restrictServices)
  {
 -    return QQmlDebugTest::connectTo(
 -                QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/qml",
@@ -95,8 +95,8 @@
                  restrictServices ? QStringLiteral("QmlDebugger,QmlInspector") : QString(),
                  testFile("qtquick2.qml"), true);
  }
---- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmlpreview/tst_qqmlpreview.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmlpreview/tst_qqmlpreview.cpp
+--- a/tests/auto/qml/debugger/qqmlpreview/tst_qqmlpreview.cpp
++++ b/tests/auto/qml/debugger/qqmlpreview/tst_qqmlpreview.cpp
 @@ -56,7 +56,11 @@ tst_QQmlPreview::tst_QQmlPreview()
  
  QQmlDebugTest::ConnectResult tst_QQmlPreview::startQmlProcess(const QString &qmlFile)
@@ -110,9 +110,9 @@
                                    QStringLiteral("QmlPreview"), testFile(qmlFile), true);
  }
  
---- qt6-declarative-6.4.2.orig/tests/auto/qml/qmlformat/tst_qmlformat.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/qmlformat/tst_qmlformat.cpp
-@@ -65,6 +65,9 @@ void TestQmlformat::initTestCase()
+--- a/tests/auto/qml/qmlformat/tst_qmlformat.cpp
++++ b/tests/auto/qml/qmlformat/tst_qmlformat.cpp
+@@ -74,6 +74,9 @@ void TestQmlformat::initTestCase()
  {
      QQmlDataTest::initTestCase();
      m_qmlformatPath = QLibraryInfo::path(QLibraryInfo::BinariesPath) + QLatin1String("/qmlformat");
@@ -122,8 +122,8 @@
  #ifdef Q_OS_WIN
      m_qmlformatPath += QLatin1String(".exe");
  #endif
---- qt6-declarative-6.4.2.orig/tests/auto/qml/qmlimportscanner/tst_qmlimportscanner.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/qmlimportscanner/tst_qmlimportscanner.cpp
+--- a/tests/auto/qml/qmlimportscanner/tst_qmlimportscanner.cpp
++++ b/tests/auto/qml/qmlimportscanner/tst_qmlimportscanner.cpp
 @@ -42,6 +42,9 @@ void TestQmlimportscanner::initTestCase(
      QQmlDataTest::initTestCase();
      m_qmlimportscannerPath = QLibraryInfo::path(QLibraryInfo::LibraryExecutablesPath)
@@ -134,9 +134,9 @@
  #ifdef Q_OS_WIN
      m_qmlimportscannerPath += QLatin1String(".exe");
  #endif
---- qt6-declarative-6.4.2.orig/tests/auto/qml/qmllint/tst_qmllint.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/qmllint/tst_qmllint.cpp
-@@ -159,10 +159,18 @@ void TestQmllint::initTestCase()
+--- a/tests/auto/qml/qmllint/tst_qmllint.cpp
++++ b/tests/auto/qml/qmllint/tst_qmllint.cpp
+@@ -170,10 +170,18 @@ void TestQmllint::initTestCase()
  {
      QQmlDataTest::initTestCase();
      m_qmllintPath = QLibraryInfo::path(QLibraryInfo::BinariesPath) + QLatin1String("/qmllint");
@@ -155,8 +155,8 @@
  #ifdef Q_OS_WIN
      m_qmllintPath += QLatin1String(".exe");
      m_qmljsrootgenPath += QLatin1String(".exe");
---- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qdebugmessageservice/tst_qdebugmessageservice.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qdebugmessageservice/tst_qdebugmessageservice.cpp
+--- a/tests/auto/qml/debugger/qdebugmessageservice/tst_qdebugmessageservice.cpp
++++ b/tests/auto/qml/debugger/qdebugmessageservice/tst_qdebugmessageservice.cpp
 @@ -118,7 +118,11 @@ tst_QDebugMessageService::tst_QDebugMess
  
  void tst_QDebugMessageService::retrieveDebugOutput()
@@ -170,8 +170,8 @@
                                      QString(), testFile(QMLFILE), true), ConnectSuccess);
  
      QTRY_VERIFY(m_client->logBuffer.size() >= 2);
---- qt6-declarative-6.4.2.orig/tests/auto/qml/qmlplugindump/tst_qmlplugindump.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/qmlplugindump/tst_qmlplugindump.cpp
+--- a/tests/auto/qml/qmlplugindump/tst_qmlplugindump.cpp
++++ b/tests/auto/qml/qmlplugindump/tst_qmlplugindump.cpp
 @@ -38,6 +38,9 @@ void tst_qmlplugindump::initTestCase()
  {
      QQmlDataTest::initTestCase();
@@ -182,8 +182,8 @@
  
  #if defined(Q_OS_WIN)
      qmlplugindumpPath += QLatin1String("/qmlplugindump.exe");
---- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp
+--- a/tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp
++++ b/tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp
 @@ -163,11 +163,18 @@ void tst_QQmlDebugJS::initTestCase()
      QQmlDebugTest::initTestCase();
  }
@@ -195,7 +195,7 @@
 +        return QString(build_bin_path) + "/qmlscene";
 +    return QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/qmlscene";
 +}
- QQmlDebugTest::ConnectResult tst_QQmlDebugJS::init(bool qmlscene, const QString &qmlFile,
+ QQmlDebugTest::ConnectResult tst_QQmlDebugJS::runAndConnect(bool qmlscene, const QString &qmlFile,
                                                     bool blockMode, bool restrictServices)
  {
      const QString executable = qmlscene
diff --git a/srcpkgs/qt6-declarative/template b/srcpkgs/qt6-declarative/template
index 02f71622e16194..33031bc568e62e 100644
--- a/srcpkgs/qt6-declarative/template
+++ b/srcpkgs/qt6-declarative/template
@@ -1,17 +1,20 @@
 # Template file for 'qt6-declarative'
+#
+# On update, rebuild pkgs with qt6-declarative-private-devel
 pkgname=qt6-declarative
-version=6.6.0
-revision=2
+version=6.7.2
+revision=1
 build_style=cmake
 configure_args="-DQT_BUILD_TESTS=ON"
 hostmakedepends="qt6-base perl pkg-config wayland-devel qt6-shadertools python3"
-makedepends="qt6-base-devel Vulkan-Headers qt6-shadertools-devel qt6-languageserver-devel"
+makedepends="qt6-base-private-devel Vulkan-Headers qt6-shadertools-devel
+ qt6-languageserver-private-devel"
 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=1b539bb0a918c8f0307fd07bd4ef0334bf7f8934bbc2eabfc04c433a7d7fa331
+checksum=4c29cba1af8c42d425d8eb6e01bad24cb80f4b983d71eef566a0542dfdb9b999
 replaces="qt6-quickcontrols2>=0"
 
 if [ "$CROSS_BUILD" ]; then
@@ -24,6 +27,9 @@ if [ "$XBPS_TARGET_ENDIAN" = "be" ]; then
 	broken="shader compilation fails"
 fi
 
+subpackages="qt6-quick-test qt6-declarative-host-tools qt6-declarative-tools
+ qt6-declarative-private-devel qt6-declarative-devel"
+
 do_check() {
 	cd build
 	export QML2_IMPORT_PATH="$wrksrc/build/lib${XBPS_TARGET_WORDSIZE}/qt6/qml"
@@ -93,6 +99,20 @@ qt6-declarative-host-tools_package() {
 	}
 }
 
+qt6-declarative-private-devel_package() {
+	depends="qt6-declarative-devel>=${version}_${revision}"
+	short_desc+=" - private development files"
+	pkg_install() {
+		for dir in $(cd ${DESTDIR} && find usr/include -type d -name private); do
+			vmove "$dir"
+		done
+		vmove "usr/lib/cmake/*Private"
+		vmove "usr/lib/qt6/metatypes/*private_*_metatypes.json"
+		vmove "usr/lib/qt6/mkspecs/modules/*_private.pri"
+		vmove "usr/lib/qt6/modules/*Private.json"
+	}
+}
+
 qt6-declarative-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision} qt6-base-devel>=${version}_1
 	 qt6-declarative-host-tools>=${version}_${revision}"
@@ -107,11 +127,6 @@ qt6-declarative-devel_package() {
 		vmove "usr/lib/*.a"
 		vmove "usr/lib/*.prl"
 		vmove usr/lib/qt6/modules
-		for _f in ${DESTDIR}/usr/lib/cmake/*; do
-			case "$_f" in
-			*Tools) ;;
-			*)	vmove "usr/lib/cmake/${_f##*/}" ;;
-			esac
-		done
+		vmove usr/lib/cmake
 	}
 }

From 79d8b9ce2b653b31406277fde56acac47331bb3f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:29 +0700
Subject: [PATCH 12/52] qt6-languageserver: update to 6.7.2.

---
 srcpkgs/qt6-languageserver-private-devel |  1 +
 srcpkgs/qt6-languageserver/template      | 26 +++++++++++++++++++++---
 2 files changed, 24 insertions(+), 3 deletions(-)
 create mode 120000 srcpkgs/qt6-languageserver-private-devel

diff --git a/srcpkgs/qt6-languageserver-private-devel b/srcpkgs/qt6-languageserver-private-devel
new file mode 120000
index 00000000000000..7426b953adab41
--- /dev/null
+++ b/srcpkgs/qt6-languageserver-private-devel
@@ -0,0 +1 @@
+qt6-languageserver
\ No newline at end of file
diff --git a/srcpkgs/qt6-languageserver/template b/srcpkgs/qt6-languageserver/template
index a152b18f7dcd09..2521c5d684c509 100644
--- a/srcpkgs/qt6-languageserver/template
+++ b/srcpkgs/qt6-languageserver/template
@@ -1,17 +1,37 @@
 # Template file for 'qt6-languageserver'
 pkgname=qt6-languageserver
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 configure_args="-DQT_BUILD_TESTS=ON"
 hostmakedepends="qt6-base"
-makedepends="qt6-base-devel"
+makedepends="qt6-base-private-devel"
 short_desc="Implementation of the Language Server Protocol for Qt6"
 maintainer="classabbyamp <void@placeviolette.net>"
 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/qtlanguageserver-everywhere-src-${version}.tar.xz"
-checksum=aec93019862bf63769206fe56a2230cd9e37994806a4bf28415203b4eb9a490e
+checksum=b659fe655144ffa061e3ae509eadb42ae373230517295a96935434340e101a92
+
+subpackages="qt6-languageserver-private-devel qt6-languageserver-devel"
+
+post_install() {
+	rm -rf ${DESTDIR}/usr/tests
+}
+
+qt6-languageserver-private-devel_package() {
+	depends="qt6-languageserver-devel>=${version}_${revision}"
+	short_desc+=" - private development files"
+	pkg_install() {
+		for dir in $(cd ${DESTDIR} && find usr/include -type d -name private); do
+			vmove "$dir"
+		done
+		vmove "usr/lib/cmake/*Private"
+		vmove "usr/lib/qt6/metatypes/*private_*_metatypes.json"
+		vmove "usr/lib/qt6/mkspecs/modules/*_private.pri"
+		vmove "usr/lib/qt6/modules/*Private.json"
+	}
+}
 
 qt6-languageserver-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision}"

From 6e7965cec0784825495e62cec991ad074d086a86 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:29 +0700
Subject: [PATCH 13/52] qt6-multimedia: update to 6.7.2.

---
 srcpkgs/qt6-multimedia-private-devel          |  1 +
 .../qt6-multimedia/patches/musl-timeval.patch | 10 -------
 srcpkgs/qt6-multimedia/template               | 28 +++++++++++++++----
 3 files changed, 24 insertions(+), 15 deletions(-)
 create mode 120000 srcpkgs/qt6-multimedia-private-devel
 delete mode 100644 srcpkgs/qt6-multimedia/patches/musl-timeval.patch

diff --git a/srcpkgs/qt6-multimedia-private-devel b/srcpkgs/qt6-multimedia-private-devel
new file mode 120000
index 00000000000000..9343446502d0e5
--- /dev/null
+++ b/srcpkgs/qt6-multimedia-private-devel
@@ -0,0 +1 @@
+qt6-multimedia
\ No newline at end of file
diff --git a/srcpkgs/qt6-multimedia/patches/musl-timeval.patch b/srcpkgs/qt6-multimedia/patches/musl-timeval.patch
deleted file mode 100644
index af7b4dd7fb5769..00000000000000
--- a/srcpkgs/qt6-multimedia/patches/musl-timeval.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- qt6-multimedia-6.4.2.orig/src/plugins/multimedia/ffmpeg/qv4l2camera_p.h
-+++ qt6-multimedia-6.4.2/src/plugins/multimedia/ffmpeg/qv4l2camera_p.h
-@@ -22,6 +22,7 @@
- #include <qfilesystemwatcher.h>
- #include <qsocketnotifier.h>
- #include <qmutex.h>
-+#include <sys/time.h>
- 
- QT_BEGIN_NAMESPACE
- 
diff --git a/srcpkgs/qt6-multimedia/template b/srcpkgs/qt6-multimedia/template
index 67a577e1300fea..046cc0b486ccdc 100644
--- a/srcpkgs/qt6-multimedia/template
+++ b/srcpkgs/qt6-multimedia/template
@@ -1,24 +1,28 @@
 # Template file for 'qt6-multimedia'
 pkgname=qt6-multimedia
-version=6.6.0
-revision=2
+version=6.7.2
+revision=1
 build_style=cmake
 configure_args="-DQT_FEATURE_gstreamer=ON"
 hostmakedepends="perl qt6-declarative-host-tools pkg-config qt6-shadertools"
-makedepends="qt6-declarative-devel pulseaudio-devel ffmpeg-devel libva-devel
- qt6-shadertools-devel libglib-devel gst-plugins-base1-devel qt6-quick3d-devel"
+makedepends="qt6-base-private-devel qt6-declarative-private-devel
+ qt6-quick3d-private-devel
+ pulseaudio-devel ffmpeg-devel libva-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/official_releases/qt/${version%.*}/${version}/submodules/qtmultimedia-everywhere-src-${version}.tar.xz"
-checksum=ba4b236ca3ec118841b7f5ba87797e24a8c5cbef9ba973fe219fbfc310d38782
+checksum=8ef835115acb9a1d3d2c9f23cfacb43f2c537e3786a8ab822299a2a7765651d3
 
 if [ "$XBPS_MACHINE" = "i686" ]; then
 	CXXFLAGS="-DPFFFT_SIMD_DISABLE=1"
 	CFLAGS="-DPFFFT_SIMD_DISABLE=1"
 fi
 
+subpackages="qt6-multimedia-private-devel qt6-multimedia-devel"
+
 do_check() {
 	cd build
 	local broken="tst_qmediaformat|tst_qaudiodecoderbackend"
@@ -33,6 +37,20 @@ post_install() {
 	rm -rf ${DESTDIR}/usr/tests
 }
 
+qt6-multimedia-private-devel_package() {
+	depends="qt6-multimedia-devel>=${version}_${revision}"
+	short_desc+=" - private development files"
+	pkg_install() {
+		for dir in $(cd ${DESTDIR} && find usr/include -type d -name private); do
+			vmove "$dir"
+		done
+		vmove "usr/lib/cmake/*Private"
+		vmove "usr/lib/qt6/metatypes/*private_*_metatypes.json"
+		vmove "usr/lib/qt6/mkspecs/modules/*_private.pri"
+		vmove "usr/lib/qt6/modules/*Private.json"
+	}
+}
+
 qt6-multimedia-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision} qt6-base-devel>=${version}_1"
 	short_desc+=" - development files"

From 4343c2be8baa263942a70718b9b3a47bd16e2ed6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:29 +0700
Subject: [PATCH 14/52] qt6-qt5compat: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-qt5compat/template b/srcpkgs/qt6-qt5compat/template
index 5724b0f8a0f17d..fa9c9d6eabb147 100644
--- a/srcpkgs/qt6-qt5compat/template
+++ b/srcpkgs/qt6-qt5compat/template
@@ -1,18 +1,19 @@
 # Template file for 'qt6-qt5compat'
 pkgname=qt6-qt5compat
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 configure_args="-DQT_FEATURE_textcodec=ON -DQT_FEATURE_codecs=ON
  -DQT_FEATURE_iconv=ON -DQT_FEATURE_big_codecs=ON"
 hostmakedepends="qt6-base qt6-declarative-host-tools perl pkg-config"
-makedepends="qt6-base-devel qt6-declarative-devel qt6-shadertools-devel"
+makedepends="qt6-base-private-devel qt6-declarative-private-devel
+ qt6-shadertools-devel"
 short_desc="Cross-platform application and UI framework - Qt5 Compatibilty Component"
 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=3d85edb66126f712266dcbfc6cd00383d46cc6d66c8b84607ca21e2bc71a8fca
+checksum=8826b5189efc4d9bdb64fdb1aa89d0fdf4e53c60948ed7995621ed046e38c003
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args="-DQT_BUILD_TESTS=ON"

From 5d98d534ed53df16ae2b807784b7ded63e98a9f7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:29 +0700
Subject: [PATCH 15/52] qt6-quick3d: update to 6.7.2.

---
 srcpkgs/qt6-quick3d-private-devel |  1 +
 srcpkgs/qt6-quick3d/template      | 25 ++++++++++++++++++++-----
 2 files changed, 21 insertions(+), 5 deletions(-)
 create mode 120000 srcpkgs/qt6-quick3d-private-devel

diff --git a/srcpkgs/qt6-quick3d-private-devel b/srcpkgs/qt6-quick3d-private-devel
new file mode 120000
index 00000000000000..91ff6f03e47970
--- /dev/null
+++ b/srcpkgs/qt6-quick3d-private-devel
@@ -0,0 +1 @@
+qt6-quick3d
\ No newline at end of file
diff --git a/srcpkgs/qt6-quick3d/template b/srcpkgs/qt6-quick3d/template
index cf5b03d8024619..8cf3f07d37a848 100644
--- a/srcpkgs/qt6-quick3d/template
+++ b/srcpkgs/qt6-quick3d/template
@@ -1,19 +1,19 @@
 # Template file for 'qt6-quick3d'
 pkgname=qt6-quick3d
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-declarative-host-tools qt6-shadertools"
-makedepends="qt6-base-devel qt6-declarative-devel qt6-shadertools-devel
- qt6-quicktimeline libassimp-devel"
+makedepends="qt6-base-private-devel qt6-declarative-private-devel
+ qt6-shadertools-devel qt6-quicktimeline libassimp-devel"
 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=37ab3eb394e49d6c2b03c4da0c7f782c255dff294e73946369dd2e059a837aba
+checksum=bb8ff9aec6da2e2d3b3986cc859333a98b2f3d4bbe564c5733e8f1a089d15270
 
-subpackages="qt6-quick3d-tools qt6-quick3d-devel"
+subpackages="qt6-quick3d-tools qt6-quick3d-private-devel qt6-quick3d-devel"
 if [ "$CROSS_BUILD" ]; then
 	hostmakedepends+=" qt6-quick3d-tools"
 	configure_args="-DQT_FORCE_BUILD_TOOLS=true"
@@ -35,6 +35,21 @@ post_install() {
 	rm -rf ${DESTDIR}/usr/lib/libQt6BundledEmbree.a
 }
 
+qt6-quick3d-private-devel_package() {
+	depends="qt6-quick3d-devel>=${version}_${revision}
+	 qt6-declarative-private-devel"
+	short_desc+=" - private development files"
+	pkg_install() {
+		for dir in $(cd ${DESTDIR} && find usr/include -type d -name private); do
+			vmove "$dir"
+		done
+		vmove "usr/lib/cmake/*Private"
+		vmove "usr/lib/qt6/metatypes/*private_*_metatypes.json"
+		vmove "usr/lib/qt6/mkspecs/modules/*_private.pri"
+		vmove "usr/lib/qt6/modules/*Private.json"
+	}
+}
+
 qt6-quick3d-tools_package() {
 	depends="${sourcepkg}>=${version}_${revision}"
 	short_desc+=" - Tools"

From 61aed106ecdf5f2e37241d18e22eb7a26165bfbc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:29 +0700
Subject: [PATCH 16/52] qt6-quicktimeline: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-quicktimeline/template b/srcpkgs/qt6-quicktimeline/template
index fcb2ec7ef59e94..5c19476ea230f3 100644
--- a/srcpkgs/qt6-quicktimeline/template
+++ b/srcpkgs/qt6-quicktimeline/template
@@ -1,16 +1,16 @@
 # Template file for 'qt6-quicktimeline'
 pkgname=qt6-quicktimeline
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base qt6-declarative-host-tools"
-makedepends="qt6-base-devel qt6-declarative-devel"
+makedepends="qt6-base-private-devel qt6-declarative-private-devel"
 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/rc/-rc}/submodules/qtquicktimeline-everywhere-src-${version/rc/-rc}.tar.xz"
-checksum=079e51d4572aed992731628b269f9c3f9c61a6c379bae6c354c949a6d89bb590
+checksum=21eddea01cf095cede10362eea4fb8402ffd06868c88d50a757c8c1f6b0719eb
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args="-DQT_BUILD_TESTS=ON"

From db38b54c127d4716d7421749e9abcfc8c779addd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:29 +0700
Subject: [PATCH 17/52] qt6-shadertools: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-shadertools/template b/srcpkgs/qt6-shadertools/template
index 815bfca3047f73..0357e1abd4c442 100644
--- a/srcpkgs/qt6-shadertools/template
+++ b/srcpkgs/qt6-shadertools/template
@@ -1,17 +1,17 @@
 # Template file for 'qt6-shadertools'
 pkgname=qt6-shadertools
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base"
-makedepends="qt6-base-devel"
+makedepends="qt6-base-private-devel"
 depends="libqt6shadertools>=${version}_${revision}"
 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=3690327dc550144b8102be2bb7f6dc995ccbe3584041094ad021a83737ef9875
+checksum=edfa34c0ac8c00fcaa949df1d8e7a77d89dadd6386e683ce6c3e3b117e2f7cc1
 
 if [ "$CROSS_BUILD" ]; then
 	configure_args="-DQT_FORCE_BUILD_TOOLS=true"

From 6dc169ede03428011bc0969474adf533bebcc5eb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:29 +0700
Subject: [PATCH 18/52] qt6-svg: update to 6.7.2.

---
 ...nullptr-dereference-with-invalid-SVG.patch | 29 -------------------
 srcpkgs/qt6-svg/template                      |  6 ++--
 2 files changed, 3 insertions(+), 32 deletions(-)
 delete mode 100644 srcpkgs/qt6-svg/patches/Fix-nullptr-dereference-with-invalid-SVG.patch

diff --git a/srcpkgs/qt6-svg/patches/Fix-nullptr-dereference-with-invalid-SVG.patch b/srcpkgs/qt6-svg/patches/Fix-nullptr-dereference-with-invalid-SVG.patch
deleted file mode 100644
index 9f0de172e652a8..00000000000000
--- a/srcpkgs/qt6-svg/patches/Fix-nullptr-dereference-with-invalid-SVG.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From edc8ca7f1e45302223b4b7962a57a30918f84c8d Mon Sep 17 00:00:00 2001
-From: Paul Olav Tvete <paul.tvete@qt.io>
-Date: Tue, 10 Oct 2023 10:14:22 +0200
-Subject: Fix nullptr dereference with invalid SVG
-
-Fixes: QTBUG-117944
-Pick-to: 6.6 6.5 6.2
-Change-Id: I9059dc28c750fc0585f1fb982152b211c323c6cd
-Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
----
- src/svg/qsvghandler.cpp | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/svg/qsvghandler.cpp b/src/svg/qsvghandler.cpp
-index e6877ac..1cffbc3 100644
---- a/src/svg/qsvghandler.cpp
-+++ b/src/svg/qsvghandler.cpp
-@@ -3620,6 +3620,8 @@ void QSvgHandler::init()
- 
- static bool detectCycles(const QSvgNode *node, QList<const QSvgUse *> active = {})
- {
-+    if (Q_UNLIKELY(!node))
-+        return false;
-     switch (node->type()) {
-     case QSvgNode::DOC:
-     case QSvgNode::G:
--- 
-cgit v1.2.3
-
diff --git a/srcpkgs/qt6-svg/template b/srcpkgs/qt6-svg/template
index 8f545f8a309b79..fecf0655fdb832 100644
--- a/srcpkgs/qt6-svg/template
+++ b/srcpkgs/qt6-svg/template
@@ -1,16 +1,16 @@
 # Template file for 'qt6-svg'
 pkgname=qt6-svg
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="qt6-base perl"
-makedepends="qt6-base-devel"
+makedepends="qt6-base-private-devel"
 short_desc="Cross-platform application and UI framework (QT6) - qt6-svg component"
 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=33da25fef51102f564624a7ea3e57cb4a0a31b7b44783d1af5749ac36d3c72de
+checksum=fb0d1286a35be3583fee34aeb5843c94719e07193bdf1d4d8b0dc14009caef01
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args="-DQT_BUILD_TESTS=ON"

From 693c8086f5bf39d19867c6799520b273908bd0c9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:30 +0700
Subject: [PATCH 19/52] qt6-tools: update to 6.7.2.

---
 srcpkgs/qt6-tools-private-devel               |  1 +
 srcpkgs/qt6-tools/patches/gumbo.patch         | 15 ----
 .../qt6-tools/patches/no-litehtml-test.patch  | 11 ---
 srcpkgs/qt6-tools/patches/qdoc-location.patch | 89 ++++++++++++++++---
 srcpkgs/qt6-tools/template                    | 35 ++++++--
 5 files changed, 109 insertions(+), 42 deletions(-)
 create mode 120000 srcpkgs/qt6-tools-private-devel
 delete mode 100644 srcpkgs/qt6-tools/patches/gumbo.patch
 delete mode 100644 srcpkgs/qt6-tools/patches/no-litehtml-test.patch

diff --git a/srcpkgs/qt6-tools-private-devel b/srcpkgs/qt6-tools-private-devel
new file mode 120000
index 00000000000000..d2de59aba4535f
--- /dev/null
+++ b/srcpkgs/qt6-tools-private-devel
@@ -0,0 +1 @@
+qt6-tools
\ No newline at end of file
diff --git a/srcpkgs/qt6-tools/patches/gumbo.patch b/srcpkgs/qt6-tools/patches/gumbo.patch
deleted file mode 100644
index 42c8e40203c28e..00000000000000
--- a/srcpkgs/qt6-tools/patches/gumbo.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- qttools-everywhere-src-6.4.0/src/assistant/qlitehtml/src/CMakeLists.txt	2022-09-23 13:50:40.000000000 +0200
-+++ -	2022-11-03 01:17:21.262108484 +0100
-@@ -30,12 +30,6 @@
-       PROPERTIES
-         QT_COMPILE_OPTIONS_DISABLE_WARNINGS ON
-     )
--    set_target_properties(
--      gumbo
--      PROPERTIES
--        QT_COMPILE_OPTIONS_DISABLE_WARNINGS ON
--    )
--
-     set(CMAKE_POSITION_INDEPENDENT_CODE "${ORIG_FPIC}")
-     set(BUILD_SHARED_LIBS ${ORIG_BUILD_SHARED_LIBS})
-     # force optimized litehtml even in debug
diff --git a/srcpkgs/qt6-tools/patches/no-litehtml-test.patch b/srcpkgs/qt6-tools/patches/no-litehtml-test.patch
deleted file mode 100644
index 2cbfac5de82d54..00000000000000
--- a/srcpkgs/qt6-tools/patches/no-litehtml-test.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- qt6-tools-6.4.2.orig/src/assistant/qlitehtml/src/3rdparty/litehtml/CMakeLists.txt
-+++ qt6-tools-6.4.2/src/assistant/qlitehtml/src/3rdparty/litehtml/CMakeLists.txt
-@@ -191,7 +191,7 @@ set_source_files_properties(${CMAKE_CURR
- 
- # Tests
- 
--if (BUILD_TESTING)
-+if (FALSE)
-     include(FetchContent)
-     FetchContent_Declare(
-       googletest
diff --git a/srcpkgs/qt6-tools/patches/qdoc-location.patch b/srcpkgs/qt6-tools/patches/qdoc-location.patch
index 6d7c0ea345374e..8e4df56a00b404 100644
--- a/srcpkgs/qt6-tools/patches/qdoc-location.patch
+++ b/srcpkgs/qt6-tools/patches/qdoc-location.patch
@@ -1,14 +1,83 @@
---- qt6-tools-6.4.2.orig/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp
-+++ qt6-tools-6.4.2/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp
-@@ -74,7 +74,10 @@ private:
- void tst_generatedOutput::initTestCase()
+--- a/tests/auto/linguist/lconvert/tst_lconvert.cpp
++++ b/tests/auto/linguist/lconvert/tst_lconvert.cpp
+@@ -4,6 +4,16 @@
+ #include <QtTest/QtTest>
+ #include <QtCore/QFile>
+ 
++namespace {
++QString xbinpath()
++{
++    char *build_binpath = getenv("QT_BUILD_BIN_PATH");
++    if (build_binpath && *build_binpath)
++        return build_binpath;
++    return QLibraryInfo::path(QLibraryInfo::BinariesPath);
++}
++}
++
+ class tst_lconvert : public QObject
+ {
+     Q_OBJECT
+@@ -11,7 +21,7 @@ class tst_lconvert : public QObject
+ public:
+     tst_lconvert()
+       : dataDir(QFINDTESTDATA("data/"))
+-      , lconvert(QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/lconvert") {}
++      , lconvert(xbinpath() + QStringLiteral("/lconvert")) {}
+ 
+ private slots:
+     void initTestCase();
+--- a/tests/auto/linguist/lrelease/tst_lrelease.cpp
++++ b/tests/auto/linguist/lrelease/tst_lrelease.cpp
+@@ -8,13 +8,22 @@
+ 
+ #include <QtTest/QtTest>
+ 
++namespace {
++QString xbinpath()
++{
++    char *build_binpath = getenv("QT_BUILD_BIN_PATH");
++    if (build_binpath && *build_binpath)
++        return build_binpath;
++    return QLibraryInfo::path(QLibraryInfo::BinariesPath);
++}
++}
+ class tst_lrelease : public QObject
+ {
+     Q_OBJECT
+ 
+ public:
+     tst_lrelease()
+-         : lrelease(QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/lrelease")
++         : lrelease(xbinpath() + QStringLiteral("/lrelease"))
+          , dataDir(QFINDTESTDATA("testdata/"))
+     {}
+ 
+--- a/tests/auto/linguist/lupdate/tst_lupdate.cpp
++++ b/tests/auto/linguist/lupdate/tst_lupdate.cpp
+@@ -44,7 +44,10 @@ private:
+ 
+ tst_lupdate::tst_lupdate()
+ {
+-    QString binPath = QLibraryInfo::path(QLibraryInfo::BinariesPath);
++    auto binPath = QLibraryInfo::path(QLibraryInfo::BinariesPath);
++    char *build_binpath = getenv("QT_BUILD_BIN_PATH");
++    if (build_binpath && *build_binpath)
++        binPath = build_binpath;
+     m_cmdLupdate = binPath + QLatin1String("/lupdate");
+     m_basePath = QFINDTESTDATA("testdata/");
+ }
+--- a/tests/auto/qtdiag/tst_qtdiag.cpp
++++ b/tests/auto/qtdiag/tst_qtdiag.cpp
+@@ -21,7 +21,11 @@ private:
+ 
+ void tst_QtDiag::initTestCase()
  {
-     // Build the path to the QDoc binary the same way moc tests do for moc.
--    const auto binpath = QLibraryInfo::path(QLibraryInfo::BinariesPath);
+-    QString binary = QLibraryInfo::path(QLibraryInfo::BinariesPath) + QStringLiteral("/qtdiag");
 +    auto binpath = QLibraryInfo::path(QLibraryInfo::BinariesPath);
 +    char *build_binpath = getenv("QT_BUILD_BIN_PATH");
 +    if (build_binpath && *build_binpath)
-+    	    binpath = build_binpath;
-     const auto extension = QSysInfo::productType() == "windows" ? ".exe" : "";
-     m_qdoc = binpath + QLatin1String("/qdoc") + extension;
-     m_expectedDir.setPath(QFINDTESTDATA("expected_output"));
++        binpath = build_binpath;
++    QString binary = binpath + QStringLiteral("/qtdiag");
+ #  ifdef Q_OS_WIN
+     binary += QStringLiteral(".exe");
+ #  endif
diff --git a/srcpkgs/qt6-tools/template b/srcpkgs/qt6-tools/template
index 986db5dffd2393..5fde45439cdc4a 100644
--- a/srcpkgs/qt6-tools/template
+++ b/srcpkgs/qt6-tools/template
@@ -1,33 +1,42 @@
 # Template file for 'qt6-tools'
 pkgname=qt6-tools
-version=6.6.0
-revision=2
+version=6.7.2
+revision=1
 build_style=cmake
 configure_args="-DEXTERNAL_GUMBO=ON -DLITEHTML_UTF8=ON -DUSE_ICU=ON
  -DQT_BUILD_SHARED_LIBS=ON -DQT_FEATURE_assistant=ON
- -DQT_FEATURE_pixeltool=ON
+ -DQT_FEATURE_pixeltool=ON -DLITEHTML_BUILD_TESTING=OFF
  -DQT_FEATURE_distancefieldgenerator=ON"
 hostmakedepends="qt6-base perl qt6-plugin-sqlite clang17 clang-tools-extra17
  qt6-declarative-host-tools"
-makedepends="qt6-base-devel qt6-plugin-sqlite qt6-declarative-devel
+makedepends="qt6-base-private-devel qt6-plugin-sqlite qt6-declarative-private-devel
  gumbo-parser-devel icu-devel llvm17-devel"
 short_desc="Cross-platform application and UI framework (QT6) - qt6-tools component"
 maintainer="John <me@johnnynator.dev>"
 license="custom: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=4e9feebc142bbb6e453e1dc3277e09ec45c8ef081b5ee2a029e6684b5905ba99
+checksum=58e855ad1b2533094726c8a425766b63a04a0eede2ed85086860e54593aa4b2a
 
 if [ "$CROSS_BUILD" ]; then
 	configure_args+=" -DQT_FORCE_BUILD_TOOLS=TRUE"
 	hostmakedepends+=" qt6-tools"
 fi
-
+case "$XBPS_TARGET_MACHINE" in
+	x86_64*|aarch64*)
+		makedepends+=" libomp-devel" ;;
+esac
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args+=" -DQT_BUILD_TESTS=ON"
 fi
 
+subpackages="qt6-designer qt6-help qt6-ui-tools qt6-tools-private-devel qt6-tools-devel"
+
+post_patch() {
+	vsed -i -e 's/gumbo/litehtml/' src/assistant/qlitehtml/src/CMakeLists.txt
+}
+
 post_install() {
 	vlicense LICENSES/Qt-GPL-exception-1.0.txt
 }
@@ -65,6 +74,20 @@ qt6-ui-tools_package() {
 	}
 }
 
+qt6-tools-private-devel_package() {
+	depends="qt6-tools-devel>=${version}_${revision}"
+	short_desc+=" - private development files"
+	pkg_install() {
+		for dir in $(cd ${DESTDIR} && find usr/include -type d -name private); do
+			vmove "$dir"
+		done
+		vmove "usr/lib/cmake/*Private"
+		vmove "usr/lib/qt6/metatypes/*private_*_metatypes.json"
+		vmove "usr/lib/qt6/mkspecs/modules/*_private.pri"
+		vmove "usr/lib/qt6/modules/*Private.json"
+	}
+}
+
 qt6-tools-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision} qt6-base-devel>=${version}_1"
 	short_desc+=" - development files"

From 53a3a9f719aa4704542745e4a2b473feb97aaa55 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:30 +0700
Subject: [PATCH 20/52] qt6-translations: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-translations/template b/srcpkgs/qt6-translations/template
index 85f83d0a4879cc..414f31964525b7 100644
--- a/srcpkgs/qt6-translations/template
+++ b/srcpkgs/qt6-translations/template
@@ -1,13 +1,12 @@
 # Template file for 'qt6-translations'
 pkgname=qt6-translations
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
-hostmakedepends="qt6-base qt6-tools perl"
-makedepends="qt6-base-devel qt6-tools-devel"
+hostmakedepends="qt6-base-devel qt6-tools-devel perl"
 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=a0d89a236f64b810eb0fe4ae1e90db22b0e86263521b35f89e69f1392815078c
+checksum=9845780b5dc1b7279d57836db51aeaf2e4a1160c42be09750616f39157582ca9

From 245768e503a0afdefc4302ad2319e5cb8a0d4438 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:30 +0700
Subject: [PATCH 21/52] qt6-wayland: update to 6.7.2.

---
 srcpkgs/qt6-wayland-private-devel |  1 +
 srcpkgs/qt6-wayland/template      | 24 +++++++++++++++++++-----
 2 files changed, 20 insertions(+), 5 deletions(-)
 create mode 120000 srcpkgs/qt6-wayland-private-devel

diff --git a/srcpkgs/qt6-wayland-private-devel b/srcpkgs/qt6-wayland-private-devel
new file mode 120000
index 00000000000000..c4dec18ea9a04a
--- /dev/null
+++ b/srcpkgs/qt6-wayland-private-devel
@@ -0,0 +1 @@
+qt6-wayland
\ No newline at end of file
diff --git a/srcpkgs/qt6-wayland/template b/srcpkgs/qt6-wayland/template
index ef4dc11a9491ae..1abb9396baf1a1 100644
--- a/srcpkgs/qt6-wayland/template
+++ b/srcpkgs/qt6-wayland/template
@@ -1,12 +1,12 @@
 # Template file for 'qt6-wayland'
 pkgname=qt6-wayland
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="qt6-base perl pkg-config wayland-devel qt6-declarative-host-tools"
 # XXX: Qml as optional dep
-makedepends="qt6-base-devel wayland-devel libxkbcommon-devel
- qt6-declarative-devel
+makedepends="qt6-base-private-devel wayland-devel libxkbcommon-devel
+ qt6-declarative-private-devel
  libXcomposite-devel MesaLib-devel Vulkan-Headers libdrm-devel"
 checkdepends="dbus mesa-dri"
 short_desc="Cross-platform application and UI framework - Wayland"
@@ -14,9 +14,9 @@ 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=30c3d82d85d050c83370710a26d12c802199c51eba5c2726e9d6243edd03b7e8
+checksum=a2a057e1dd644bd44abb9990fecc194b2e25c2e0f39e81aa9fee4c1e5e2a8a5b
 
-subpackages="qt6-wayland-tools qt6-wayland-devel"
+subpackages="qt6-wayland-tools qt6-wayland-private-devel qt6-wayland-devel"
 
 if [ "$CROSS_BUILD" ]; then
 	configure_args="-DQT_FORCE_BUILD_TOOLS=true"
@@ -37,6 +37,20 @@ qt6-wayland-tools_package() {
 	}
 }
 
+qt6-wayland-private-devel_package() {
+	depends="qt6-wayland-devel>=${version}_${revision}"
+	short_desc+=" - private development files"
+	pkg_install() {
+		for dir in $(cd ${DESTDIR} && find usr/include -type d -name private); do
+			vmove "$dir"
+		done
+		vmove "usr/lib/cmake/*Private"
+		vmove "usr/lib/qt6/metatypes/*private_*_metatypes.json"
+		vmove "usr/lib/qt6/mkspecs/modules/*_private.pri"
+		vmove "usr/lib/qt6/modules/*Private.json"
+	}
+}
+
 qt6-wayland-devel_package() {
 	depends="qt6-wayland-tools>=${version}_${revision} qt6-base-devel>=${version}_1"
 	short_desc+=" - development files"

From ce7c9b208cca68f5893d7d48d1e2280cd3b9a769 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:30 +0700
Subject: [PATCH 22/52] qt6-webchannel: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-webchannel/template b/srcpkgs/qt6-webchannel/template
index 1718abb31b7e0d..4a867790d99cf2 100644
--- a/srcpkgs/qt6-webchannel/template
+++ b/srcpkgs/qt6-webchannel/template
@@ -1,16 +1,17 @@
 # Template file for 'qt6-webchannel'
 pkgname=qt6-webchannel
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base qt6-declarative-host-tools"
-makedepends="qt6-base-devel qt6-declarative-devel qt6-websockets-devel"
+makedepends="qt6-base-private-devel qt6-declarative-private-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/official_releases/qt/${version%.*}/${version}/submodules/qtwebchannel-everywhere-src-${version}.tar.xz"
-checksum=fddcb38e6d5843f9c7570654f1a12aaf0086e5a01f7bf3cf170064fcc5a3f51c
+checksum=ac5d96607b10e7de546eaf93bb9f65c0fd631ef9b91ef8a794e26fd57db4501c
 
 do_check() {
 	cd build

From 4cef0fbf67fc610ebd0e3cd1199211ee70fd5a7e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:30 +0700
Subject: [PATCH 23/52] qt6-3d: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-3d/template b/srcpkgs/qt6-3d/template
index e20bcf8ad42fdc..6a61ebb2e1f1d2 100644
--- a/srcpkgs/qt6-3d/template
+++ b/srcpkgs/qt6-3d/template
@@ -1,16 +1,17 @@
 # Template file for 'qt6-3d'
 pkgname=qt6-3d
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-declarative-host-tools"
-makedepends="qt6-declarative-devel qt6-shadertools-devel libassimp-devel"
+makedepends="qt6-declarative-private-devel qt6-shadertools-devel libassimp-devel
+ qt6-base-private-devel"
 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=0da87a46217f4d72f6d0de9768605d5325ef3d093f73a5e0d73dd88e99c1fc2a
+checksum=8bc087d904973133186e58471845c5df376bbfdcfcf079fda287e1cda27c8adf
 
 qt6-3d-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision}"

From 7e2c122662ac69a257e658d955eaa5f45d587d6d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:30 +0700
Subject: [PATCH 24/52] qt6-pdf: update to 6.7.2.

---
 .../qt6-pdf/patches/0001-None-no-debug.patch  |    6 +-
 srcpkgs/qt6-pdf/patches/0003-cross-hack.patch |   10 +-
 ....patch => 0004-no-glibc-cmake-check.patch} |    0
 .../qt6-pdf/patches/0004-riscv-angle.patch    |   28 -
 .../patches/0004-riscv-angle.patch.args       |    1 -
 .../qt6-pdf/patches/0005-riscv-crashpad.patch |  778 -------
 .../patches/0005-riscv-crashpad.patch.args    |    1 -
 .../qt6-pdf/patches/0006-riscv-dav1d.patch    |   44 -
 .../patches/0006-riscv-dav1d.patch.args       |    1 -
 .../qt6-pdf/patches/0007-riscv-sandbox.patch  | 1939 -----------------
 .../patches/0007-riscv-sandbox.patch.args     |    1 -
 .../patches/0008-rsicv-allocator.patch        |   11 -
 ...ERT-roll-src-third_party-ffmpeg-m102.patch |   52 +
 .../patches/0104-angle-wayland-include.patch  |   37 +
 ...mium-105.0.5195.52-python-six-1.16.0.patch |   84 +
 .../patches/0106-chromium-system-nodejs.patch |   29 -
 .../0107-chromium-114-maldoca-include.patch   |   20 +
 ...0108-chromium-115-compiler-SkColor4f.patch |   26 +
 .../0108-chromium-cursed^Uscoped_file.patch   |   18 -
 .../patches/0110-chromium-117-typename.patch  |   91 +
 .../patches/0111-chromium-cstdint.patch       |   10 -
 ...12-chromium-118-missing-header-files.patch |  379 ++++
 ...chromium-118-no_matching_constructor.patch |  410 ++++
 ...-chromium-118-python-3.12-deprecated.patch |   98 +
 ...karound_clang_bug-structured_binding.patch |   25 +
 ...0117-chromium-i686-vaapi-fpermissive.patch |   23 +
 .../patches/0117-chromium-musl-resolver.patch |   60 -
 ...chromium-revert-drop-of-system-java.patch} |    4 +-
 .../patches/0119-chromium-system-nodejs.patch |   20 +
 ...oss-build.patch => 0120-cross-build.patch} |   20 +-
 .../patches/0121-fc-cache-version.patch       |   13 +
 ...-aarch64-musl-memory-tagging-macros.patch} |    8 +-
 .../0123-fix-argument_spec-isnan-isinf.patch  |   11 +
 .../0124-fix-constexpr-narrowing.patch        |   21 +
 .../patches/0125-fix-dawn-platform.patch      |   55 +
 ...ix-missing-TEMP_FAILURE_RETRY-macro.patch} |    4 +-
 ...128-fix-missing-cstdint-include-musl.patch |   10 +
 .../0129-chromium-sandbox-shed_getparam.patch |   17 -
 ...9-fix-musl-missing-unistd_h-include.patch} |    2 +-
 ...130-fix-perfetto-GetThreadName-musl.patch} |    4 +-
 ...131-fix-swiftshader-llvm-musl-config.patch |    0
 ...bc-malloc.patch => 0132-libc_malloc.patch} |   10 +-
 .../patches/0133-musl-no-execinfo.patch       |   68 +
 ...info.patch => 0134-musl-no-mallinfo.patch} |  101 +-
 .../patches/0135-musl-partition-atfork.patch  |   11 +
 ...v8-monotonic-pthread-cont_timedwait.patch} |    4 +-
 ...context.patch => 0137-no-getcontext.patch} |    4 +-
 srcpkgs/qt6-pdf/patches/0138-no-mte.patch     |   11 +
 srcpkgs/qt6-pdf/patches/0139-old-clang.patch  |   11 +
 .../0140-reenable-linux-i686-builds.patch     |   19 +
 ...h => 0141-remove-sys-cdefs-includes.patch} |    8 +-
 .../patches/0142-sandbox-membarrier.patch     |   10 +
 srcpkgs/qt6-pdf/patches/0143-sndio.patch      |  849 ++++++++
 ...155-systypes.patch => 0144-systypes.patch} |    2 +-
 ...ndle-ffmpeg-av_stream_get_first_dts.patch} |    4 +-
 ...h => 0146-unbundled-cross-toolchain.patch} |    4 +-
 .../qt6-pdf/patches/0148-webrtc-size_t.patch  |   10 +
 .../patches/0152-chromium-webrtc-size_t.patch |   10 -
 .../patches/0153-chromium-webrtc-size_t.patch |   16 -
 .../qt6-pdf/patches/0154-chromium-uit_t.patch |   11 -
 .../patches/0300-chromium-musl-hacks.patch    |   38 -
 .../patches/0301-chromium-musl-sandbox.patch  |   70 -
 .../qt6-pdf/patches/0700-armv7l-neon.patch    |   10 -
 ...-chromium-musl-cross-no-asm_ptrace_h.patch |   30 -
 .../0751-chromium-musl-arm-user_vfp.patch     |   20 -
 .../0752-chromium-musl-arm-elf_auxv_t.patch   |   18 -
 .../0753-chromium-musl-32-bit-fstat.patch     |   13 -
 .../qt6-pdf/patches/0800-musl-sandbox.patch   |  121 +
 ...hing.patch => 0801-musl-tid-caching.patch} |   11 +-
 .../0802-musl-no-res-ninit-nclose.patch       |   20 +
 .../qt6-pdf/patches/0803-musl-include.patch   |   10 +
 srcpkgs/qt6-pdf/patches/0998-cross.patch      |   18 -
 .../patches/0998-example-cross-build.patch    |   11 +
 srcpkgs/qt6-pdf/patches/0999-python3.12.patch |   20 -
 .../1000-we-know-what-will-be-supported.patch |   18 +-
 ...tial-migration-from-imp-to-importlib.patch |   36 -
 .../qt6-pdf/patches/fix-libxml2-2.12.patch    |   34 -
 .../qt6-pdf/patches/pipewire-fcntl-call.patch |   18 -
 srcpkgs/qt6-pdf/template                      |   12 +-
 79 files changed, 2645 insertions(+), 3417 deletions(-)
 rename srcpkgs/qt6-pdf/patches/{0050-no-glibc-cmake-check.patch => 0004-no-glibc-cmake-check.patch} (100%)
 delete mode 100644 srcpkgs/qt6-pdf/patches/0004-riscv-angle.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0004-riscv-angle.patch.args
 delete mode 100644 srcpkgs/qt6-pdf/patches/0005-riscv-crashpad.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0005-riscv-crashpad.patch.args
 delete mode 100644 srcpkgs/qt6-pdf/patches/0006-riscv-dav1d.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0006-riscv-dav1d.patch.args
 delete mode 100644 srcpkgs/qt6-pdf/patches/0007-riscv-sandbox.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0007-riscv-sandbox.patch.args
 delete mode 100644 srcpkgs/qt6-pdf/patches/0008-rsicv-allocator.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0100-REVERT-roll-src-third_party-ffmpeg-m102.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0104-angle-wayland-include.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0106-chromium-105.0.5195.52-python-six-1.16.0.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0106-chromium-system-nodejs.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0107-chromium-114-maldoca-include.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0108-chromium-115-compiler-SkColor4f.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0108-chromium-cursed^Uscoped_file.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0110-chromium-117-typename.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0111-chromium-cstdint.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0112-chromium-118-missing-header-files.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0113-chromium-118-no_matching_constructor.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0114-chromium-118-python-3.12-deprecated.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0116-chromium-118-workaround_clang_bug-structured_binding.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0117-chromium-i686-vaapi-fpermissive.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0117-chromium-musl-resolver.patch
 rename srcpkgs/qt6-pdf/patches/{0105-chromium-revert-drop-of-system-java.patch => 0118-chromium-revert-drop-of-system-java.patch} (76%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0119-chromium-system-nodejs.patch
 rename srcpkgs/qt6-pdf/patches/{0107-chromium-cross-build.patch => 0120-cross-build.patch} (72%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0121-fc-cache-version.patch
 rename srcpkgs/qt6-pdf/patches/{0109-chromium-aarch64-musl-memory-tagging.patch => 0122-fix-aarch64-musl-memory-tagging-macros.patch} (73%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0123-fix-argument_spec-isnan-isinf.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0124-fix-constexpr-narrowing.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0125-fix-dawn-platform.patch
 rename srcpkgs/qt6-pdf/patches/{0110-chromium-fix-missing-TEMP_FAILURE_RETRY-macro.patch => 0127-fix-missing-TEMP_FAILURE_RETRY-macro.patch} (78%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0128-fix-missing-cstdint-include-musl.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0129-chromium-sandbox-shed_getparam.patch
 rename srcpkgs/qt6-pdf/patches/{0112-chromium-unistd.h.patch => 0129-fix-musl-missing-unistd_h-include.patch} (94%)
 rename srcpkgs/qt6-pdf/patches/{0116-chromium-musl-get-thread-name.patch => 0130-fix-perfetto-GetThreadName-musl.patch} (73%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0131-fix-swiftshader-llvm-musl-config.patch
 rename srcpkgs/qt6-pdf/patches/{0120-chromium-libc-malloc.patch => 0132-libc_malloc.patch} (66%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0133-musl-no-execinfo.patch
 rename srcpkgs/qt6-pdf/patches/{0302-chromium-no-mallinfo.patch => 0134-musl-no-mallinfo.patch} (50%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0135-musl-partition-atfork.patch
 rename srcpkgs/qt6-pdf/patches/{0122-chromium-condition_var.patch => 0136-musl-v8-monotonic-pthread-cont_timedwait.patch} (82%)
 rename srcpkgs/qt6-pdf/patches/{0123-chromium-musl-no-getcontext.patch => 0137-no-getcontext.patch} (72%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0138-no-mte.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0139-old-clang.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0140-reenable-linux-i686-builds.patch
 rename srcpkgs/qt6-pdf/patches/{0126-chromium-no-cdefs.patch => 0141-remove-sys-cdefs-includes.patch} (65%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0142-sandbox-membarrier.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0143-sndio.patch
 rename srcpkgs/qt6-pdf/patches/{0155-systypes.patch => 0144-systypes.patch} (93%)
 rename srcpkgs/qt6-pdf/patches/{0150-chromium-unbundle-ffmpeg-av_stream_get_first_dts.patch => 0145-unbundle-ffmpeg-av_stream_get_first_dts.patch} (56%)
 rename srcpkgs/qt6-pdf/patches/{0151-chromium-unbundled-cross-toolchain.patch => 0146-unbundled-cross-toolchain.patch} (56%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0148-webrtc-size_t.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0152-chromium-webrtc-size_t.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0153-chromium-webrtc-size_t.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0154-chromium-uit_t.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0300-chromium-musl-hacks.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0301-chromium-musl-sandbox.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0700-armv7l-neon.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0750-chromium-musl-cross-no-asm_ptrace_h.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0751-chromium-musl-arm-user_vfp.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0752-chromium-musl-arm-elf_auxv_t.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0753-chromium-musl-32-bit-fstat.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0800-musl-sandbox.patch
 rename srcpkgs/qt6-pdf/patches/{0010-chromium-musl-tid-caching.patch => 0801-musl-tid-caching.patch} (92%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0802-musl-no-res-ninit-nclose.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0803-musl-include.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0998-cross.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0998-example-cross-build.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0999-python3.12.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/Partial-migration-from-imp-to-importlib.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/fix-libxml2-2.12.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/pipewire-fcntl-call.patch

diff --git a/srcpkgs/qt6-pdf/patches/0001-None-no-debug.patch b/srcpkgs/qt6-pdf/patches/0001-None-no-debug.patch
index b221fdcd392faa..b6596bd57f646c 100644
--- a/srcpkgs/qt6-pdf/patches/0001-None-no-debug.patch
+++ b/srcpkgs/qt6-pdf/patches/0001-None-no-debug.patch
@@ -1,6 +1,6 @@
---- qt6-webengine-6.4.2.orig/cmake/Functions.cmake
-+++ qt6-webengine-6.4.2/cmake/Functions.cmake
-@@ -820,6 +820,8 @@ macro(append_build_type_setup)
+--- a/cmake/Functions.cmake
++++ b/cmake/Functions.cmake
+@@ -844,6 +844,8 @@ macro(append_build_type_setup)
          endif()
      elseif(${config} STREQUAL "MinSizeRel")
          list(APPEND gnArgArg is_debug=false symbol_level=0 optimize_for_size=true)
diff --git a/srcpkgs/qt6-pdf/patches/0003-cross-hack.patch b/srcpkgs/qt6-pdf/patches/0003-cross-hack.patch
index a3f0a5791406be..f82133d6746fe3 100644
--- a/srcpkgs/qt6-pdf/patches/0003-cross-hack.patch
+++ b/srcpkgs/qt6-pdf/patches/0003-cross-hack.patch
@@ -1,10 +1,10 @@
---- qt6-webengine-6.4.2.orig/src/core/api/CMakeLists.txt
-+++ qt6-webengine-6.4.2/src/core/api/CMakeLists.txt
-@@ -51,6 +51,7 @@ qt_internal_add_module(WebEngineCore
+--- a/src/core/api/CMakeLists.txt
++++ b/src/core/api/CMakeLists.txt
+@@ -57,6 +57,7 @@ qt_internal_add_module(WebEngineCore
          Qt::Gui
          Qt::Network
          Qt::Quick
 +        X11
+     EXTRA_CMAKE_FILES
+         "${CMAKE_CURRENT_LIST_DIR}/${INSTALL_CMAKE_NAMESPACE}WebEngineCoreDeploySupport.cmake"
  )
- 
- set_target_properties(WebEngineCore PROPERTIES QTWEBENGINEPROCESS_NAME ${qtWebEngineProcessName})
diff --git a/srcpkgs/qt6-pdf/patches/0050-no-glibc-cmake-check.patch b/srcpkgs/qt6-pdf/patches/0004-no-glibc-cmake-check.patch
similarity index 100%
rename from srcpkgs/qt6-pdf/patches/0050-no-glibc-cmake-check.patch
rename to srcpkgs/qt6-pdf/patches/0004-no-glibc-cmake-check.patch
diff --git a/srcpkgs/qt6-pdf/patches/0004-riscv-angle.patch b/srcpkgs/qt6-pdf/patches/0004-riscv-angle.patch
deleted file mode 100644
index 1aceb6f2d229e9..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0004-riscv-angle.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Index: chromium-111.0.5563.64/third_party/angle/gni/angle.gni
-===================================================================
---- chromium-111.0.5563.64.orig/third_party/angle/gni/angle.gni
-+++ chromium-111.0.5563.64/third_party/angle/gni/angle.gni
-@@ -105,7 +105,8 @@ declare_args() {
- 
-   if (current_cpu == "arm64" || current_cpu == "x64" ||
-       current_cpu == "mips64el" || current_cpu == "s390x" ||
--      current_cpu == "ppc64" || current_cpu == "loong64") {
-+      current_cpu == "ppc64" || current_cpu == "loong64" ||
-+      current_cpu == "riscv64") {
-     angle_64bit_current_cpu = true
-   } else if (current_cpu == "arm" || current_cpu == "x86" ||
-              current_cpu == "mipsel" || current_cpu == "s390" ||
-Index: chromium-111.0.5563.64/third_party/angle/src/common/platform.h
-===================================================================
---- chromium-111.0.5563.64.orig/third_party/angle/src/common/platform.h
-+++ chromium-111.0.5563.64/third_party/angle/src/common/platform.h
-@@ -108,7 +108,7 @@
- #endif
- 
- // Mips and arm devices need to include stddef for size_t.
--#if defined(__mips__) || defined(__arm__) || defined(__aarch64__)
-+#if defined(__mips__) || defined(__arm__) || defined(__aarch64__) || defined(__riscv)
- #    include <stddef.h>
- #endif
- 
-
diff --git a/srcpkgs/qt6-pdf/patches/0004-riscv-angle.patch.args b/srcpkgs/qt6-pdf/patches/0004-riscv-angle.patch.args
deleted file mode 100644
index d5f38e354e7f00..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0004-riscv-angle.patch.args
+++ /dev/null
@@ -1 +0,0 @@
--Np1 --directory=src/3rdparty/chromium/
diff --git a/srcpkgs/qt6-pdf/patches/0005-riscv-crashpad.patch b/srcpkgs/qt6-pdf/patches/0005-riscv-crashpad.patch
deleted file mode 100644
index 012a38c3886594..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0005-riscv-crashpad.patch
+++ /dev/null
@@ -1,778 +0,0 @@
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/minidump/minidump_context.h
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/minidump/minidump_context.h
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/minidump/minidump_context.h
-@@ -637,6 +637,41 @@ struct MinidumpContextMIPS64 {
-   uint64_t fir;
- };
- 
-+//! \brief 64bit RISC-V-specifc flags for MinidumpContextRISCV64::context_flags.
-+//! Based on minidump_cpu_riscv64.h from breakpad
-+enum MinidumpContextRISCV64Flags : uint32_t {
-+  //! \brief Identifies the context structure as RISCV64.
-+  kMinidumpContextRISCV64 = 0x00080000,
-+
-+  //! \brief Indicates the validity of integer registers.
-+  //!
-+  //! Registers `x1`-`x31` and pc are valid.
-+  kMinidumpContextRISCV64Integer = kMinidumpContextRISCV64 | 0x00000002,
-+
-+  //! \brief Indicates the validity of floating point registers.
-+  //!
-+  //! Floating point registers `f0`-`f31`, and `fcsr` are valid
-+  kMinidumpContextRISCV64FloatingPoint = kMinidumpContextRISCV64 | 0x00000004,
-+
-+  //! \brief Indicates the validity of all registers.
-+  kMinidumpContextRISCV64All = kMinidumpContextRISCV64Integer |
-+                              kMinidumpContextRISCV64FloatingPoint,
-+};
-+
-+//! \brief A 64bit RISCV CPU context (register state) carried in a minidump file.
-+struct MinidumpContextRISCV64 {
-+  uint64_t context_flags;
-+
-+  //! \brief General purpose registers.
-+  uint64_t regs[32];
-+
-+  //! \brief FPU registers.
-+  uint64_t fpregs[32];
-+
-+  //! \brief FPU status register.
-+  uint64_t fcsr;
-+};
-+
- }  // namespace crashpad
- 
- #endif  // CRASHPAD_MINIDUMP_MINIDUMP_CONTEXT_H_
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/minidump/minidump_context_writer.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/minidump/minidump_context_writer.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/minidump/minidump_context_writer.cc
-@@ -102,6 +102,13 @@ MinidumpContextWriter::CreateFromSnapsho
-       break;
-     }
- 
-+    case kCPUArchitectureRISCV64: {
-+      context = std::make_unique<MinidumpContextRISCV64Writer>();
-+      reinterpret_cast<MinidumpContextRISCV64Writer*>(context.get())
-+          ->InitializeFromSnapshot(context_snapshot->riscv64);
-+      break;
-+    }
-+
-     default: {
-       LOG(ERROR) << "unknown context architecture "
-                  << context_snapshot->architecture;
-@@ -555,5 +562,42 @@ size_t MinidumpContextMIPS64Writer::Cont
-   DCHECK_GE(state(), kStateFrozen);
-   return sizeof(context_);
- }
-+
-+MinidumpContextRISCV64Writer::MinidumpContextRISCV64Writer()
-+    : MinidumpContextWriter(), context_() {
-+  context_.context_flags = kMinidumpContextRISCV64;
-+}
-+
-+MinidumpContextRISCV64Writer::~MinidumpContextRISCV64Writer() = default;
-+
-+void MinidumpContextRISCV64Writer::InitializeFromSnapshot(
-+    const CPUContextRISCV64* context_snapshot) {
-+  DCHECK_EQ(state(), kStateMutable);
-+  DCHECK_EQ(context_.context_flags, kMinidumpContextRISCV64);
-+
-+  context_.context_flags = kMinidumpContextRISCV64All;
-+
-+  static_assert(sizeof(context_.regs) == sizeof(context_snapshot->regs),
-+                "GPRs size mismatch");
-+  memcpy(context_.regs, context_snapshot->regs, sizeof(context_.regs));
-+
-+  static_assert(sizeof(context_.fpregs) == sizeof(context_snapshot->fpregs),
-+                "FPRs size mismatch");
-+  memcpy(context_.fpregs,
-+         context_snapshot->fpregs,
-+         sizeof(context_.fpregs));
-+  context_.fcsr = context_snapshot->fcsr;
-+}
-+
-+bool MinidumpContextRISCV64Writer::WriteObject(
-+    FileWriterInterface* file_writer) {
-+  DCHECK_EQ(state(), kStateWritable);
-+  return file_writer->Write(&context_, sizeof(context_));
-+}
-+
-+size_t MinidumpContextRISCV64Writer::ContextSize() const {
-+  DCHECK_GE(state(), kStateFrozen);
-+  return sizeof(context_);
-+}
- 
- }  // namespace crashpad
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/minidump/minidump_context_writer.h
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/minidump/minidump_context_writer.h
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/minidump/minidump_context_writer.h
-@@ -369,6 +369,49 @@ class MinidumpContextMIPS64Writer final
-   MinidumpContextMIPS64 context_;
- };
- 
-+//! \brief The writer for a MinidumpContextRISCV64 structure in a minidump file.
-+class MinidumpContextRISCV64Writer final : public MinidumpContextWriter {
-+ public:
-+  MinidumpContextRISCV64Writer();
-+
-+  MinidumpContextRISCV64Writer(const MinidumpContextRISCV64Writer&) = delete;
-+  MinidumpContextRISCV64Writer& operator=(const MinidumpContextRISCV64Writer&) =
-+      delete;
-+
-+  ~MinidumpContextRISCV64Writer() override;
-+
-+  //! \brief Initializes the MinidumpContextRISCV based on \a context_snapshot.
-+  //!
-+  //! \param[in] context_snapshot The context snapshot to use as source data.
-+  //!
-+  //! \note Valid in #kStateMutable. No mutation of context() may be done before
-+  //!     calling this method, and it is not normally necessary to alter
-+  //!     context() after calling this method.
-+  void InitializeFromSnapshot(const CPUContextRISCV64* context_snapshot);
-+
-+  //! \brief Returns a pointer to the context structure that this object will
-+  //!     write.
-+  //!
-+  //! \attention This returns a non-`const` pointer to this object’s private
-+  //!     data so that a caller can populate the context structure directly.
-+  //!     This is done because providing setter interfaces to each field in the
-+  //!     context structure would be unwieldy and cumbersome. Care must be taken
-+  //!     to populate the context structure correctly. The context structure
-+  //!     must only be modified while this object is in the #kStateMutable
-+  //!     state.
-+  MinidumpContextRISCV64* context() { return &context_; }
-+
-+ protected:
-+  // MinidumpWritable:
-+  bool WriteObject(FileWriterInterface* file_writer) override;
-+
-+  // MinidumpContextWriter:
-+  size_t ContextSize() const override;
-+
-+ private:
-+  MinidumpContextRISCV64 context_;
-+};
-+
- }  // namespace crashpad
- 
- #endif  // CRASHPAD_MINIDUMP_MINIDUMP_CONTEXT_WRITER_H_
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc
-@@ -175,6 +175,10 @@ std::string MinidumpMiscInfoDebugBuildSt
-   static constexpr char kCPU[] = "mips";
- #elif defined(ARCH_CPU_MIPS64EL)
-   static constexpr char kCPU[] = "mips64";
-+#elif defined(ARCH_CPU_RISCV32)
-+  static constexpr char kCPU[] = "riscv32";
-+#elif defined(ARCH_CPU_RISCV64)
-+  static constexpr char kCPU[] = "riscv64";
- #else
- #error define kCPU for this CPU
- #endif
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/capture_memory.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/capture_memory.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/capture_memory.cc
-@@ -117,6 +117,16 @@ void CaptureMemory::PointedToByContext(c
-   for (size_t i = 0; i < std::size(context.mipsel->regs); ++i) {
-     MaybeCaptureMemoryAround(delegate, context.mipsel->regs[i]);
-   }
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+  if (context.architecture == kCPUArchitectureRISCV64) {
-+    for (size_t i = 0; i < std::size(context.riscv64->regs); ++i) {
-+      MaybeCaptureMemoryAround(delegate, context.riscv64->regs[i]);
-+    }
-+  } else {
-+    for (size_t i = 0; i < std::size(context.riscv32->regs); ++i) {
-+      MaybeCaptureMemoryAround(delegate, context.riscv32->regs[i]);
-+    }
-+  }
- #else
- #error Port.
- #endif
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/cpu_architecture.h
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/cpu_architecture.h
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/cpu_architecture.h
-@@ -43,7 +43,13 @@ enum CPUArchitecture {
-   kCPUArchitectureMIPSEL,
- 
-   //! \brief 64-bit MIPSEL.
--  kCPUArchitectureMIPS64EL
-+  kCPUArchitectureMIPS64EL,
-+
-+  //! \brief 32-bit RISCV.
-+  kCPUArchitectureRISCV32,
-+
-+  //! \brief 64-bit RISCV.
-+  kCPUArchitectureRISCV64
- };
- 
- }  // namespace crashpad
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/cpu_context.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/cpu_context.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/cpu_context.cc
-@@ -226,10 +226,12 @@ bool CPUContext::Is64Bit() const {
-     case kCPUArchitectureX86_64:
-     case kCPUArchitectureARM64:
-     case kCPUArchitectureMIPS64EL:
-+    case kCPUArchitectureRISCV64:
-       return true;
-     case kCPUArchitectureX86:
-     case kCPUArchitectureARM:
-     case kCPUArchitectureMIPSEL:
-+    case kCPUArchitectureRISCV32:
-       return false;
-     default:
-       NOTREACHED();
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/cpu_context.h
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/cpu_context.h
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/cpu_context.h
-@@ -362,6 +362,20 @@ struct CPUContextMIPS64 {
-   uint64_t fir;
- };
- 
-+//! \brief A context structure carrying RISCV32 CPU state.
-+struct CPUContextRISCV32 {
-+  uint32_t regs[32];
-+  uint64_t fpregs[32];
-+  uint32_t fcsr;
-+};
-+
-+//! \brief A context structure carrying RISCV64 CPU state.
-+struct CPUContextRISCV64 {
-+  uint64_t regs[32];
-+  uint64_t fpregs[32];
-+  uint32_t fcsr;
-+};
-+
- //! \brief A context structure capable of carrying the context of any supported
- //!     CPU architecture.
- struct CPUContext {
-@@ -402,6 +416,8 @@ struct CPUContext {
-     CPUContextARM64* arm64;
-     CPUContextMIPS* mipsel;
-     CPUContextMIPS64* mips64;
-+    CPUContextRISCV32* riscv32;
-+    CPUContextRISCV64* riscv64;
-   };
- };
- 
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.cc
-@@ -266,6 +266,30 @@ void InitializeCPUContextARM64_OnlyFPSIM
-   context->fpcr = float_context.fpcr;
- }
- 
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+
-+template <typename Traits>
-+void InitializeCPUContextRISCV(
-+    const typename Traits::SignalThreadContext& thread_context,
-+    const typename Traits::SignalFloatContext& float_context,
-+    typename Traits::CPUContext* context) {
-+  static_assert(sizeof(context->regs) == sizeof(thread_context),
-+                "registers size mismatch");
-+  static_assert(sizeof(context->fpregs) == sizeof(float_context.f),
-+                "fp registers size mismatch");
-+  memcpy(&context->regs, &thread_context, sizeof(context->regs));
-+  memcpy(&context->fpregs, &float_context.f, sizeof(context->fpregs));
-+  context->fcsr = float_context.fcsr;
-+}
-+template void InitializeCPUContextRISCV<ContextTraits32>(
-+    const ContextTraits32::SignalThreadContext& thread_context,
-+    const ContextTraits32::SignalFloatContext& float_context,
-+    ContextTraits32::CPUContext* context);
-+template void InitializeCPUContextRISCV<ContextTraits64>(
-+    const ContextTraits64::SignalThreadContext& thread_context,
-+    const ContextTraits64::SignalFloatContext& float_context,
-+    ContextTraits64::CPUContext* context);
-+
- #endif  // ARCH_CPU_X86_FAMILY
- 
- }  // namespace internal
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.h
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.h
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.h
-@@ -174,6 +174,22 @@ void InitializeCPUContextMIPS(
- 
- #endif  // ARCH_CPU_MIPS_FAMILY || DOXYGEN
- 
-+#if defined(ARCH_CPU_RISCV_FAMILY) || DOXYGEN
-+
-+//! \brief Initializes a CPUContextRISCV structure from native context
-+//!     structures on Linux.
-+//!
-+//! \param[in] thread_context The native thread context.
-+//! \param[in] float_context The native float context.
-+//! \param[out] context The CPUContextRISCV structure to initialize.
-+template <typename Traits>
-+void InitializeCPUContextRISCV(
-+    const typename Traits::SignalThreadContext& thread_context,
-+    const typename Traits::SignalFloatContext& float_context,
-+    typename Traits::CPUContext* context);
-+
-+#endif  // ARCH_CPU_RISCV_FAMILY || DOXYGEN
-+
- }  // namespace internal
- }  // namespace crashpad
- 
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.cc
-@@ -325,6 +325,61 @@ bool ExceptionSnapshotLinux::ReadContext
-       reader, context_address, context_.mips64);
- }
- 
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+
-+template <typename Traits>
-+static bool ReadContext(ProcessReaderLinux* reader,
-+                        LinuxVMAddress context_address,
-+                        typename Traits::CPUContext* dest_context) {
-+  const ProcessMemory* memory = reader->Memory();
-+
-+  LinuxVMAddress gregs_address = context_address +
-+                                 offsetof(UContext<Traits>, mcontext) +
-+                                 offsetof(typename Traits::MContext, gregs);
-+
-+  typename Traits::SignalThreadContext thread_context;
-+  if (!memory->Read(gregs_address, sizeof(thread_context), &thread_context)) {
-+    LOG(ERROR) << "Couldn't read gregs";
-+    return false;
-+  }
-+
-+  LinuxVMAddress fpregs_address = context_address +
-+                                  offsetof(UContext<Traits>, mcontext) +
-+                                  offsetof(typename Traits::MContext, fpregs);
-+
-+  typename Traits::SignalFloatContext fp_context;
-+  if (!memory->Read(fpregs_address, sizeof(fp_context), &fp_context)) {
-+    LOG(ERROR) << "Couldn't read fpregs";
-+    return false;
-+  }
-+
-+  InitializeCPUContextRISCV<Traits>(thread_context, fp_context, dest_context);
-+
-+  return true;
-+}
-+
-+template <>
-+bool ExceptionSnapshotLinux::ReadContext<ContextTraits32>(
-+    ProcessReaderLinux* reader,
-+    LinuxVMAddress context_address) {
-+  context_.architecture = kCPUArchitectureRISCV32;
-+  context_.riscv32 = &context_union_.riscv32;
-+
-+  return internal::ReadContext<ContextTraits32>(
-+      reader, context_address, context_.riscv32);
-+}
-+
-+template <>
-+bool ExceptionSnapshotLinux::ReadContext<ContextTraits64>(
-+    ProcessReaderLinux* reader,
-+    LinuxVMAddress context_address) {
-+  context_.architecture = kCPUArchitectureRISCV64;
-+  context_.riscv64 = &context_union_.riscv64;
-+
-+  return internal::ReadContext<ContextTraits64>(
-+      reader, context_address, context_.riscv64);
-+}
-+
- #endif  // ARCH_CPU_X86_FAMILY
- 
- bool ExceptionSnapshotLinux::Initialize(
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.h
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.h
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.h
-@@ -89,6 +89,9 @@ class ExceptionSnapshotLinux final : pub
- #elif defined(ARCH_CPU_MIPS_FAMILY)
-     CPUContextMIPS mipsel;
-     CPUContextMIPS64 mips64;
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+    CPUContextRISCV32 riscv32;
-+    CPUContextRISCV64 riscv64;
- #endif
-   } context_union_;
-   CPUContext context_;
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/process_reader_linux.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/linux/process_reader_linux.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/process_reader_linux.cc
-@@ -127,6 +127,9 @@ void ProcessReaderLinux::Thread::Initial
- #elif defined(ARCH_CPU_MIPS_FAMILY)
-   stack_pointer = reader->Is64Bit() ? thread_info.thread_context.t64.regs[29]
-                                     : thread_info.thread_context.t32.regs[29];
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+  stack_pointer = reader->Is64Bit() ? thread_info.thread_context.t64.sp
-+                                    : thread_info.thread_context.t32.sp;
- #else
- #error Port.
- #endif
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/signal_context.h
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/linux/signal_context.h
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/signal_context.h
-@@ -422,6 +422,67 @@ static_assert(offsetof(UContext<ContextT
-               "context offset mismatch");
- #endif
- 
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+
-+struct MContext32 {
-+  uint32_t gregs[32];
-+  uint64_t fpregs[32];
-+  unsigned int fcsr;
-+};
-+
-+struct MContext64 {
-+  uint64_t gregs[32];
-+  uint64_t fpregs[32];
-+  unsigned int fcsr;
-+};
-+
-+struct ContextTraits32 : public Traits32 {
-+  using MContext = MContext32;
-+  using SignalThreadContext = ThreadContext::t32_t;
-+  using SignalFloatContext = FloatContext::f32_t;
-+  using CPUContext = CPUContextRISCV32;
-+};
-+
-+struct ContextTraits64 : public Traits64 {
-+  using MContext = MContext64;
-+  using SignalThreadContext = ThreadContext::t64_t;
-+  using SignalFloatContext = FloatContext::f64_t;
-+  using CPUContext = CPUContextRISCV64;
-+};
-+
-+template <typename Traits>
-+struct UContext {
-+  typename Traits::ULong flags;
-+  typename Traits::Address link;
-+  SignalStack<Traits> stack;
-+  Sigset<Traits> sigmask;
-+  char padding[128 - sizeof(sigmask)];
-+  typename Traits::Char_64Only padding2[8];
-+  typename Traits::MContext mcontext;
-+};
-+
-+#if defined(ARCH_CPU_RISCV32)
-+static_assert(offsetof(UContext<ContextTraits32>, mcontext) ==
-+                  offsetof(ucontext_t, uc_mcontext),
-+              "context offset mismatch");
-+static_assert(offsetof(UContext<ContextTraits32>, mcontext.gregs) ==
-+                  offsetof(ucontext_t, uc_mcontext.__gregs),
-+              "context offset mismatch");
-+static_assert(offsetof(UContext<ContextTraits32>, mcontext.fpregs) ==
-+                  offsetof(ucontext_t, uc_mcontext.__fpregs),
-+              "context offset mismatch");
-+#elif defined(ARCH_CPU_RISCV64)
-+static_assert(offsetof(UContext<ContextTraits64>, mcontext) ==
-+                  offsetof(ucontext_t, uc_mcontext),
-+              "context offset mismatch");
-+static_assert(offsetof(UContext<ContextTraits64>, mcontext.gregs) ==
-+                  offsetof(ucontext_t, uc_mcontext.__gregs),
-+              "context offset mismatch");
-+static_assert(offsetof(UContext<ContextTraits64>, mcontext.fpregs) ==
-+                  offsetof(ucontext_t, uc_mcontext.__fpregs),
-+              "context offset mismatch");
-+#endif
-+
- #else
- #error Port.
- #endif  // ARCH_CPU_X86_FAMILY
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/system_snapshot_linux.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/linux/system_snapshot_linux.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/system_snapshot_linux.cc
-@@ -205,6 +205,9 @@ CPUArchitecture SystemSnapshotLinux::Get
- #elif defined(ARCH_CPU_MIPS_FAMILY)
-   return process_reader_->Is64Bit() ? kCPUArchitectureMIPS64EL
-                                     : kCPUArchitectureMIPSEL;
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+  return process_reader_->Is64Bit() ? kCPUArchitectureRISCV64
-+                                    : kCPUArchitectureRISCV32;
- #else
- #error port to your architecture
- #endif
-@@ -220,6 +223,9 @@ uint32_t SystemSnapshotLinux::CPURevisio
- #elif defined(ARCH_CPU_MIPS_FAMILY)
-   // Not implementable on MIPS
-   return 0;
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+  // Not implementable on RISCV
-+  return 0;
- #else
- #error port to your architecture
- #endif
-@@ -240,6 +246,9 @@ std::string SystemSnapshotLinux::CPUVend
- #elif defined(ARCH_CPU_MIPS_FAMILY)
-   // Not implementable on MIPS
-   return std::string();
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+  // Not implementable on RISCV
-+  return std::string();
- #else
- #error port to your architecture
- #endif
-@@ -373,6 +382,9 @@ bool SystemSnapshotLinux::NXEnabled() co
- #elif defined(ARCH_CPU_MIPS_FAMILY)
-   // Not implementable on MIPS
-   return false;
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+  // Not implementable on RISCV
-+  return false;
- #else
- #error Port.
- #endif  // ARCH_CPU_X86_FAMILY
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.cc
-@@ -190,6 +190,22 @@ bool ThreadSnapshotLinux::Initialize(
-         thread.thread_info.float_context.f32,
-         context_.mipsel);
-   }
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+  if (process_reader->Is64Bit()) {
-+    context_.architecture = kCPUArchitectureRISCV64;
-+    context_.riscv64 = &context_union_.riscv64;
-+    InitializeCPUContextRISCV<ContextTraits64>(
-+	thread.thread_info.thread_context.t64,
-+	thread.thread_info.float_context.f64,
-+	context_.riscv64);
-+  } else {
-+    context_.architecture = kCPUArchitectureRISCV32;
-+    context_.riscv32 = &context_union_.riscv32;
-+    InitializeCPUContextRISCV<ContextTraits32>(
-+	thread.thread_info.thread_context.t32,
-+	thread.thread_info.float_context.f32,
-+	context_.riscv32);
-+  }
- #else
- #error Port.
- #endif
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.h
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.h
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.h
-@@ -74,6 +74,9 @@ class ThreadSnapshotLinux final : public
- #elif defined(ARCH_CPU_MIPS_FAMILY)
-     CPUContextMIPS mipsel;
-     CPUContextMIPS64 mips64;
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+    CPUContextRISCV32 riscv32;
-+    CPUContextRISCV64 riscv64;
- #else
- #error Port.
- #endif  // ARCH_CPU_X86_FAMILY
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/util/linux/ptracer.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/util/linux/ptracer.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/util/linux/ptracer.cc
-@@ -398,6 +398,51 @@ bool GetThreadArea64(pid_t tid,
-   return true;
- }
- 
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+
-+template <typename Destination>
-+bool GetRegisterSet(pid_t tid, int set, Destination* dest, bool can_log) {
-+  iovec iov;
-+  iov.iov_base = dest;
-+  iov.iov_len = sizeof(*dest);
-+  if (ptrace(PTRACE_GETREGSET, tid, reinterpret_cast<void*>(set), &iov) != 0) {
-+    PLOG_IF(ERROR, can_log) << "ptrace";
-+    return false;
-+  }
-+  if (iov.iov_len != sizeof(*dest)) {
-+    LOG_IF(ERROR, can_log) << "Unexpected registers size";
-+    return false;
-+  }
-+  return true;
-+}
-+
-+bool GetFloatingPointRegisters32(pid_t tid,
-+                                 FloatContext* context,
-+                                 bool can_log) {
-+  return false;
-+}
-+
-+bool GetFloatingPointRegisters64(pid_t tid,
-+                                 FloatContext* context,
-+                                 bool can_log) {
-+  return GetRegisterSet(tid, NT_PRFPREG, &context->f64.f, can_log);
-+}
-+
-+bool GetThreadArea32(pid_t tid,
-+                     const ThreadContext& context,
-+                     LinuxVMAddress* address,
-+                     bool can_log) {
-+  return false;
-+}
-+
-+bool GetThreadArea64(pid_t tid,
-+                     const ThreadContext& context,
-+                     LinuxVMAddress* address,
-+                     bool can_log) {
-+  *address = context.t64.tp;
-+  return true;
-+}
-+
- #else
- #error Port.
- #endif  // ARCH_CPU_X86_FAMILY
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/util/linux/thread_info.h
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/util/linux/thread_info.h
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/util/linux/thread_info.h
-@@ -79,6 +79,40 @@ union ThreadContext {
-     uint32_t cp0_status;
-     uint32_t cp0_cause;
-     uint32_t padding1_;
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+    // Reflects user_regs_struct in asm/ptrace.h.
-+    uint32_t pc;
-+    uint32_t ra;
-+    uint32_t sp;
-+    uint32_t gp;
-+    uint32_t tp;
-+    uint32_t t0;
-+    uint32_t t1;
-+    uint32_t t2;
-+    uint32_t s0;
-+    uint32_t s1;
-+    uint32_t a0;
-+    uint32_t a1;
-+    uint32_t a2;
-+    uint32_t a3;
-+    uint32_t a4;
-+    uint32_t a5;
-+    uint32_t a6;
-+    uint32_t a7;
-+    uint32_t s2;
-+    uint32_t s3;
-+    uint32_t s4;
-+    uint32_t s5;
-+    uint32_t s6;
-+    uint32_t s7;
-+    uint32_t s8;
-+    uint32_t s9;
-+    uint32_t s10;
-+    uint32_t s11;
-+    uint32_t t3;
-+    uint32_t t4;
-+    uint32_t t5;
-+    uint32_t t6;
- #else
- #error Port.
- #endif  // ARCH_CPU_X86_FAMILY
-@@ -132,6 +166,40 @@ union ThreadContext {
-     uint64_t cp0_badvaddr;
-     uint64_t cp0_status;
-     uint64_t cp0_cause;
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+    // Reflects user_regs_struct in asm/ptrace.h.
-+    uint64_t pc;
-+    uint64_t ra;
-+    uint64_t sp;
-+    uint64_t gp;
-+    uint64_t tp;
-+    uint64_t t0;
-+    uint64_t t1;
-+    uint64_t t2;
-+    uint64_t s0;
-+    uint64_t s1;
-+    uint64_t a0;
-+    uint64_t a1;
-+    uint64_t a2;
-+    uint64_t a3;
-+    uint64_t a4;
-+    uint64_t a5;
-+    uint64_t a6;
-+    uint64_t a7;
-+    uint64_t s2;
-+    uint64_t s3;
-+    uint64_t s4;
-+    uint64_t s5;
-+    uint64_t s6;
-+    uint64_t s7;
-+    uint64_t s8;
-+    uint64_t s9;
-+    uint64_t s10;
-+    uint64_t s11;
-+    uint64_t t3;
-+    uint64_t t4;
-+    uint64_t t5;
-+    uint64_t t6;
- #else
- #error Port.
- #endif  // ARCH_CPU_X86_FAMILY
-@@ -143,11 +211,12 @@ union ThreadContext {
-   using NativeThreadContext = user_regs;
- #elif defined(ARCH_CPU_MIPS_FAMILY)
- // No appropriate NativeThreadsContext type available for MIPS
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
- #else
- #error Port.
- #endif  // ARCH_CPU_X86_FAMILY || ARCH_CPU_ARM64
- 
--#if !defined(ARCH_CPU_MIPS_FAMILY)
-+#if !defined(ARCH_CPU_MIPS_FAMILY) && !defined(ARCH_CPU_RISCV_FAMILY)
- #if defined(ARCH_CPU_32_BITS)
-   static_assert(sizeof(t32_t) == sizeof(NativeThreadContext), "Size mismatch");
- #else  // ARCH_CPU_64_BITS
-@@ -218,6 +287,9 @@ union FloatContext {
-     } fpregs[32];
-     uint32_t fpcsr;
-     uint32_t fpu_id;
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+    uint64_t f[32];
-+    uint32_t fcsr;
- #else
- #error Port.
- #endif  // ARCH_CPU_X86_FAMILY
-@@ -252,6 +324,9 @@ union FloatContext {
-     double fpregs[32];
-     uint32_t fpcsr;
-     uint32_t fpu_id;
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+    uint64_t f[32];
-+    uint32_t fcsr;
- #else
- #error Port.
- #endif  // ARCH_CPU_X86_FAMILY
-@@ -281,6 +356,7 @@ union FloatContext {
-   static_assert(sizeof(f64) == sizeof(user_fpsimd_struct), "Size mismatch");
- #elif defined(ARCH_CPU_MIPS_FAMILY)
- // No appropriate floating point context native type for available MIPS.
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
- #else
- #error Port.
- #endif  // ARCH_CPU_X86
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/util/net/http_transport_libcurl.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/util/net/http_transport_libcurl.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/util/net/http_transport_libcurl.cc
-@@ -237,6 +237,8 @@ std::string UserAgent() {
- #elif defined(ARCH_CPU_BIG_ENDIAN)
-     static constexpr char arch[] = "aarch64_be";
- #endif
-+#elif defined(ARCH_CPU_RISCV64)
-+    static constexpr char arch[] = "riscv64";
- #else
- #error Port
- #endif
-
diff --git a/srcpkgs/qt6-pdf/patches/0005-riscv-crashpad.patch.args b/srcpkgs/qt6-pdf/patches/0005-riscv-crashpad.patch.args
deleted file mode 100644
index d5f38e354e7f00..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0005-riscv-crashpad.patch.args
+++ /dev/null
@@ -1 +0,0 @@
--Np1 --directory=src/3rdparty/chromium/
diff --git a/srcpkgs/qt6-pdf/patches/0006-riscv-dav1d.patch b/srcpkgs/qt6-pdf/patches/0006-riscv-dav1d.patch
deleted file mode 100644
index 12ad07275bd34b..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0006-riscv-dav1d.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-Index: chromium-102.0.5005.61/third_party/dav1d/config/linux/riscv64/config.h
-===================================================================
---- /dev/null
-+++ chromium-102.0.5005.61/third_party/dav1d/config/linux/riscv64/config.h
-@@ -0,0 +1,38 @@
-+/*
-+ * Autogenerated by the Meson build system.
-+ * Do not edit, your changes will be lost.
-+ */
-+
-+#pragma once
-+
-+#define ARCH_AARCH64 0
-+
-+#define ARCH_ARM 0
-+
-+#define ARCH_PPC64LE 0
-+
-+#define ARCH_X86 0
-+
-+#define ARCH_X86_32 0
-+
-+#define ARCH_X86_64 0
-+
-+#define CONFIG_16BPC 1
-+
-+#define CONFIG_8BPC 1
-+
-+// #define CONFIG_LOG 1 -- Logging is controlled by Chromium
-+
-+#define ENDIANNESS_BIG 0
-+
-+#define HAVE_ASM 0
-+
-+#define HAVE_AS_FUNC 0
-+
-+#define HAVE_CLOCK_GETTIME 1
-+
-+#define HAVE_GETAUXVAL 1
-+
-+#define HAVE_POSIX_MEMALIGN 1
-+
-+#define HAVE_UNISTD_H 1
-
diff --git a/srcpkgs/qt6-pdf/patches/0006-riscv-dav1d.patch.args b/srcpkgs/qt6-pdf/patches/0006-riscv-dav1d.patch.args
deleted file mode 100644
index d5f38e354e7f00..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0006-riscv-dav1d.patch.args
+++ /dev/null
@@ -1 +0,0 @@
--Np1 --directory=src/3rdparty/chromium/
diff --git a/srcpkgs/qt6-pdf/patches/0007-riscv-sandbox.patch b/srcpkgs/qt6-pdf/patches/0007-riscv-sandbox.patch
deleted file mode 100644
index c04eb47a013617..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0007-riscv-sandbox.patch
+++ /dev/null
@@ -1,1939 +0,0 @@
-Index: chromium-107.0.5304.87/sandbox/features.gni
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/features.gni
-+++ chromium-107.0.5304.87/sandbox/features.gni
-@@ -9,7 +9,8 @@
- use_seccomp_bpf = (is_linux || is_chromeos || is_android) &&
-                   (current_cpu == "x86" || current_cpu == "x64" ||
-                    current_cpu == "arm" || current_cpu == "arm64" ||
--                   current_cpu == "mipsel" || current_cpu == "mips64el")
-+                   current_cpu == "mipsel" || current_cpu == "mips64el" ||
-+                   current_cpu == "riscv64")
- 
- # SSBD (Speculative Store Bypass Disable) is a mitigation of Spectre Variant 4.
- # As Spectre Variant 4 can be mitigated by site isolation, opt-out SSBD on site
-Index: chromium-107.0.5304.87/sandbox/linux/bpf_dsl/linux_syscall_ranges.h
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/bpf_dsl/linux_syscall_ranges.h
-+++ chromium-107.0.5304.87/sandbox/linux/bpf_dsl/linux_syscall_ranges.h
-@@ -56,6 +56,12 @@
- #define MAX_PUBLIC_SYSCALL __NR_syscalls
- #define MAX_SYSCALL MAX_PUBLIC_SYSCALL
- 
-+#elif defined(__riscv)
-+
-+#define MIN_SYSCALL 0u
-+#define MAX_PUBLIC_SYSCALL 1024u
-+#define MAX_SYSCALL MAX_PUBLIC_SYSCALL
-+
- #else
- #error "Unsupported architecture"
- #endif
-Index: chromium-107.0.5304.87/sandbox/linux/bpf_dsl/seccomp_macros.h
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/bpf_dsl/seccomp_macros.h
-+++ chromium-107.0.5304.87/sandbox/linux/bpf_dsl/seccomp_macros.h
-@@ -343,6 +343,46 @@ struct regs_struct {
- #define SECCOMP_PT_PARM4(_regs) (_regs).regs[3]
- #define SECCOMP_PT_PARM5(_regs) (_regs).regs[4]
- #define SECCOMP_PT_PARM6(_regs) (_regs).regs[5]
-+
-+#elif defined(__riscv)
-+struct regs_struct {
-+  unsigned long regs[32];
-+};
-+
-+#define SECCOMP_ARCH AUDIT_ARCH_RISCV64
-+
-+#define SECCOMP_REG(_ctx, _reg) ((_ctx)->uc_mcontext.__gregs[_reg])
-+
-+#define SECCOMP_RESULT(_ctx) SECCOMP_REG(_ctx, REG_A0)
-+#define SECCOMP_SYSCALL(_ctx) SECCOMP_REG(_ctx, REG_A0+7)
-+#define SECCOMP_IP(_ctx) (_ctx)->uc_mcontext.__gregs[REG_PC]
-+#define SECCOMP_PARM1(_ctx) SECCOMP_REG(_ctx, REG_A0)
-+#define SECCOMP_PARM2(_ctx) SECCOMP_REG(_ctx, REG_A0+1)
-+#define SECCOMP_PARM3(_ctx) SECCOMP_REG(_ctx, REG_A0+2)
-+#define SECCOMP_PARM4(_ctx) SECCOMP_REG(_ctx, REG_A0+3)
-+#define SECCOMP_PARM5(_ctx) SECCOMP_REG(_ctx, REG_A0+4)
-+#define SECCOMP_PARM6(_ctx) SECCOMP_REG(_ctx, REG_A0+5)
-+
-+#define SECCOMP_NR_IDX (offsetof(struct arch_seccomp_data, nr))
-+#define SECCOMP_ARCH_IDX (offsetof(struct arch_seccomp_data, arch))
-+#define SECCOMP_IP_MSB_IDX \
-+  (offsetof(struct arch_seccomp_data, instruction_pointer) + 4)
-+#define SECCOMP_IP_LSB_IDX \
-+  (offsetof(struct arch_seccomp_data, instruction_pointer) + 0)
-+#define SECCOMP_ARG_MSB_IDX(nr) \
-+  (offsetof(struct arch_seccomp_data, args) + 8 * (nr) + 4)
-+#define SECCOMP_ARG_LSB_IDX(nr) \
-+  (offsetof(struct arch_seccomp_data, args) + 8 * (nr) + 0)
-+
-+#define SECCOMP_PT_RESULT(_regs) (_regs).regs[REG_A0]
-+#define SECCOMP_PT_SYSCALL(_regs) (_regs).regs[REG_A0+7]
-+#define SECCOMP_PT_IP(_regs) (_regs).regs[REG_PC]
-+#define SECCOMP_PT_PARM1(_regs) (_regs).regs[REG_A0]
-+#define SECCOMP_PT_PARM2(_regs) (_regs).regs[REG_A0+1]
-+#define SECCOMP_PT_PARM3(_regs) (_regs).regs[REG_A0+2]
-+#define SECCOMP_PT_PARM4(_regs) (_regs).regs[REG_A0+3]
-+#define SECCOMP_PT_PARM5(_regs) (_regs).regs[REG_A0+4]
-+#define SECCOMP_PT_PARM6(_regs) (_regs).regs[REG_A0+5]
- #else
- #error Unsupported target platform
- 
-Index: chromium-107.0.5304.87/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
-+++ chromium-107.0.5304.87/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
-@@ -61,6 +61,9 @@ bool IsBaselinePolicyAllowed(int sysno)
- #if defined(__mips__)
-          SyscallSets::IsMipsPrivate(sysno) ||
- #endif
-+#if defined(__riscv)
-+         SyscallSets::IsRiscvPrivate(sysno) ||
-+#endif
-          SyscallSets::IsAllowedOperationOnFd(sysno);
-   // clang-format on
- }
-@@ -198,7 +201,7 @@ ResultExpr EvaluateSyscallImpl(int fs_de
-     return RestrictFcntlCommands();
- #endif
- 
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-   // fork() is never used as a system call (clone() is used instead), but we
-   // have seen it in fallback code on Android.
-   if (sysno == __NR_fork) {
-@@ -253,7 +256,7 @@ ResultExpr EvaluateSyscallImpl(int fs_de
-   }
- 
- #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-   if (sysno == __NR_mmap)
-     return RestrictMmapFlags();
- #endif
-@@ -274,7 +277,7 @@ ResultExpr EvaluateSyscallImpl(int fs_de
-     return RestrictPrctl();
- 
- #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-   if (sysno == __NR_socketpair) {
-     // Only allow AF_UNIX, PF_UNIX. Crash if anything else is seen.
-     static_assert(AF_UNIX == PF_UNIX,
-Index: chromium-107.0.5304.87/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
-+++ chromium-107.0.5304.87/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
-@@ -37,6 +37,7 @@
- 
- #if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && \
-     !defined(__arm__) && !defined(__aarch64__) &&             \
-+    !defined(__riscv) &&                                      \
-     !defined(PTRACE_GET_THREAD_AREA)
- // Also include asm/ptrace-abi.h since ptrace.h in older libc (for instance
- // the one in Ubuntu 16.04 LTS) is missing PTRACE_GET_THREAD_AREA.
-@@ -442,7 +442,7 @@
- #endif
-   return Switch(request)
-       .Cases({
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-                  PTRACE_GETREGS, PTRACE_GETFPREGS, PTRACE_GET_THREAD_AREA,
-                  PTRACE_GETREGSET,
- #endif
-Index: chromium-107.0.5304.87/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
-+++ chromium-107.0.5304.87/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
-@@ -103,7 +103,7 @@ bool SyscallSets::IsUmask(int sysno) {
- // Both EPERM and ENOENT are valid errno unless otherwise noted in comment.
- bool SyscallSets::IsFileSystem(int sysno) {
-   switch (sysno) {
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_access:  // EPERM not a valid errno.
-     case __NR_chmod:
-     case __NR_chown:
-@@ -136,7 +136,7 @@ bool SyscallSets::IsFileSystem(int sysno
-     case __NR_faccessat2:
-     case __NR_fchmodat:
-     case __NR_fchownat:  // Should be called chownat ?
--#if defined(__x86_64__) || defined(__aarch64__)
-+#if defined(__x86_64__) || defined(__aarch64__) || defined(__riscv)
-     case __NR_newfstatat:  // fstatat(). EPERM not a valid errno.
- #elif defined(__i386__) || defined(__arm__) || \
-     (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
-@@ -226,7 +226,7 @@ bool SyscallSets::IsAllowedFileSystemAcc
-     case __NR_oldfstat:
- #endif
- #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-     case __NR_sync_file_range:  // EPERM not a valid errno.
- #elif defined(__arm__)
-     case __NR_arm_sync_file_range:  // EPERM not a valid errno.
-@@ -245,7 +245,7 @@ bool SyscallSets::IsDeniedFileSystemAcce
- #if defined(__i386__) || defined(__arm__)
-     case __NR_fchown32:
- #endif
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_getdents:    // EPERM not a valid errno.
- #endif
-     case __NR_getdents64:  // EPERM not a valid errno.
-@@ -324,7 +324,7 @@ bool SyscallSets::IsProcessPrivilegeChan
- bool SyscallSets::IsProcessGroupOrSession(int sysno) {
-   switch (sysno) {
-     case __NR_setpgid:
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_getpgrp:
- #endif
-     case __NR_setsid:
-@@ -358,7 +358,7 @@ bool SyscallSets::IsAllowedSignalHandlin
-     case __NR_rt_sigqueueinfo:
-     case __NR_rt_sigsuspend:
-     case __NR_rt_tgsigqueueinfo:
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_signalfd:
- #endif
-     case __NR_signalfd4:
-@@ -382,12 +382,12 @@ bool SyscallSets::IsAllowedOperationOnFd
-   switch (sysno) {
-     case __NR_close:
-     case __NR_dup:
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_dup2:
- #endif
-     case __NR_dup3:
- #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-     case __NR_shutdown:
- #endif
-       return true;
-@@ -426,7 +426,7 @@ bool SyscallSets::IsAllowedProcessStartO
-       return true;
-     case __NR_clone:  // Should be parameter-restricted.
-     case __NR_setns:  // Privileged.
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_fork:
- #endif
- #if defined(__i386__) || defined(__x86_64__)
-@@ -437,7 +437,7 @@ bool SyscallSets::IsAllowedProcessStartO
- #endif
-     case __NR_set_tid_address:
-     case __NR_unshare:
--#if !defined(__mips__) && !defined(__aarch64__)
-+#if !defined(__mips__) && !defined(__aarch64__) && !defined(__riscv)
-     case __NR_vfork:
- #endif
-     default:
-@@ -462,7 +462,7 @@ bool SyscallSets::IsAllowedFutex(int sys
- 
- bool SyscallSets::IsAllowedEpoll(int sysno) {
-   switch (sysno) {
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_epoll_create:
-     case __NR_epoll_wait:
- #endif
-@@ -500,7 +500,7 @@ bool SyscallSets::IsAllowedGetOrModifySo
- bool SyscallSets::IsDeniedGetOrModifySocket(int sysno) {
-   switch (sysno) {
- #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-     case __NR_accept:
-     case __NR_accept4:
-     case __NR_bind:
-@@ -554,7 +554,7 @@ bool SyscallSets::IsAllowedAddressSpaceA
-     case __NR_mincore:
-     case __NR_mlockall:
- #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-     case __NR_mmap:
- #endif
- #if defined(__i386__) || defined(__arm__) || \
-@@ -587,7 +587,7 @@ bool SyscallSets::IsAllowedGeneralIo(int
-     (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
-     case __NR__llseek:
- #endif
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_poll:
- #endif
-     case __NR_ppoll:
-@@ -608,7 +608,7 @@ bool SyscallSets::IsAllowedGeneralIo(int
-     case __NR_recv:
- #endif
- #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-     case __NR_recvfrom:  // Could specify source.
-     case __NR_recvmsg:   // Could specify source.
- #endif
-@@ -623,7 +623,7 @@ bool SyscallSets::IsAllowedGeneralIo(int
-     case __NR_send:
- #endif
- #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-     case __NR_sendmsg:  // Could specify destination.
-     case __NR_sendto:   // Could specify destination.
- #endif
-@@ -672,7 +672,7 @@ bool SyscallSets::IsSeccomp(int sysno) {
- bool SyscallSets::IsAllowedBasicScheduler(int sysno) {
-   switch (sysno) {
-     case __NR_sched_yield:
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_pause:
- #endif
-     case __NR_nanosleep:
-@@ -756,7 +756,7 @@ bool SyscallSets::IsNuma(int sysno) {
-     case __NR_getcpu:
-     case __NR_mbind:
- #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-     case __NR_migrate_pages:
- #endif
-     case __NR_move_pages:
-@@ -791,7 +791,7 @@ bool SyscallSets::IsGlobalProcessEnviron
-   switch (sysno) {
-     case __NR_acct:  // Privileged.
- #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-     case __NR_getrlimit:
- #endif
- #if defined(__i386__) || defined(__arm__)
-@@ -826,7 +826,7 @@ bool SyscallSets::IsDebug(int sysno) {
- 
- bool SyscallSets::IsGlobalSystemStatus(int sysno) {
-   switch (sysno) {
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR__sysctl:
-     case __NR_sysfs:
- #endif
-@@ -844,7 +844,7 @@ bool SyscallSets::IsGlobalSystemStatus(i
- 
- bool SyscallSets::IsEventFd(int sysno) {
-   switch (sysno) {
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_eventfd:
- #endif
-     case __NR_eventfd2:
-@@ -896,7 +896,8 @@ bool SyscallSets::IsKeyManagement(int sy
- }
- 
- #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || \
--    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
-+    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) || \
-+    defined(__riscv)
- bool SyscallSets::IsSystemVSemaphores(int sysno) {
-   switch (sysno) {
-     case __NR_semctl:
-@@ -916,7 +917,8 @@ bool SyscallSets::IsSystemVSemaphores(in
- 
- #if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || \
-     defined(__aarch64__) ||                                         \
--    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
-+    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) || \
-+    defined(__riscv)
- // These give a lot of ambient authority and bypass the setuid sandbox.
- bool SyscallSets::IsSystemVSharedMemory(int sysno) {
-   switch (sysno) {
-@@ -932,7 +934,8 @@ bool SyscallSets::IsSystemVSharedMemory(
- #endif
- 
- #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || \
--    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
-+    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) || \
-+    defined(__riscv)
- bool SyscallSets::IsSystemVMessageQueue(int sysno) {
-   switch (sysno) {
-     case __NR_msgctl:
-@@ -963,7 +966,8 @@ bool SyscallSets::IsSystemVIpc(int sysno
- 
- bool SyscallSets::IsAnySystemV(int sysno) {
- #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || \
--    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
-+    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) || \
-+    defined(__riscv)
-   return IsSystemVMessageQueue(sysno) || IsSystemVSemaphores(sysno) ||
-          IsSystemVSharedMemory(sysno);
- #elif defined(__i386__) || \
-@@ -1000,7 +1004,7 @@ bool SyscallSets::IsAdvancedScheduler(in
- bool SyscallSets::IsInotify(int sysno) {
-   switch (sysno) {
-     case __NR_inotify_add_watch:
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_inotify_init:
- #endif
-     case __NR_inotify_init1:
-@@ -1138,7 +1142,7 @@ bool SyscallSets::IsMisc(int sysno) {
- #if defined(__x86_64__)
-     case __NR_tuxcall:
- #endif
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_vserver:
- #endif
-       return true;
-@@ -1173,6 +1177,17 @@ bool SyscallSets::IsArmPrivate(int sysno
- }
- #endif  // defined(__arm__)
- 
-+#if defined(__riscv)
-+bool SyscallSets::IsRiscvPrivate(int sysno) {
-+  switch (sysno) {
-+    case __NR_riscv_flush_icache:
-+      return true;
-+    default:
-+      return false;
-+  }
-+}
-+#endif  // defined(__riscv)
-+
- #if defined(__mips__)
- bool SyscallSets::IsMipsPrivate(int sysno) {
-   switch (sysno) {
-Index: chromium-107.0.5304.87/sandbox/linux/seccomp-bpf-helpers/syscall_sets.h
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/seccomp-bpf-helpers/syscall_sets.h
-+++ chromium-107.0.5304.87/sandbox/linux/seccomp-bpf-helpers/syscall_sets.h
-@@ -52,7 +52,7 @@ class SANDBOX_EXPORT SyscallSets {
- #endif
- 
- #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-   static bool IsNetworkSocketInformation(int sysno);
- #endif
- 
-@@ -79,18 +79,21 @@ class SANDBOX_EXPORT SyscallSets {
-   static bool IsAsyncIo(int sysno);
-   static bool IsKeyManagement(int sysno);
- #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || \
--    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
-+    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) || \
-+    defined(__riscv)
-   static bool IsSystemVSemaphores(int sysno);
- #endif
- #if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || \
-     defined(__aarch64__) ||                                         \
--    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
-+    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) || \
-+    defined(__riscv)
-   // These give a lot of ambient authority and bypass the setuid sandbox.
-   static bool IsSystemVSharedMemory(int sysno);
- #endif
- 
- #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || \
--    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
-+    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) || \
-+    defined(__riscv)
-   static bool IsSystemVMessageQueue(int sysno);
- #endif
- 
-@@ -117,6 +120,9 @@ class SANDBOX_EXPORT SyscallSets {
-   static bool IsMipsPrivate(int sysno);
-   static bool IsMipsMisc(int sysno);
- #endif  // defined(__mips__)
-+#if defined(__riscv)
-+  static bool IsRiscvPrivate(int sysno);
-+#endif
-   static bool IsGoogle3Threading(int sysno);
- };
- 
-Index: chromium-107.0.5304.87/sandbox/linux/seccomp-bpf/syscall.cc
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/seccomp-bpf/syscall.cc
-+++ chromium-107.0.5304.87/sandbox/linux/seccomp-bpf/syscall.cc
-@@ -18,7 +18,7 @@ namespace sandbox {
- namespace {
- 
- #if defined(ARCH_CPU_X86_FAMILY) || defined(ARCH_CPU_ARM_FAMILY) || \
--    defined(ARCH_CPU_MIPS_FAMILY)
-+    defined(ARCH_CPU_MIPS_FAMILY) || defined(ARCH_CPU_RISCV_FAMILY)
- // Number that's not currently used by any Linux kernel ABIs.
- const int kInvalidSyscallNumber = 0x351d3;
- #else
-@@ -308,6 +308,28 @@ asm(// We need to be able to tell the ke
-     "2:ret\n"
-     ".cfi_endproc\n"
-     ".size SyscallAsm, .-SyscallAsm\n"
-+#elif defined(__riscv)
-+    ".text\n"
-+    ".align 2\n"
-+    ".type SyscallAsm, %function\n"
-+    "SyscallAsm:\n"
-+    ".cfi_startproc\n"
-+    "bgez a0,1f\n"
-+    "la a0,2f\n"
-+    "j 2f\n"
-+    "1:mv a7, a0\n"
-+    "ld a0, (t0)\n"
-+    "ld a1, 8(t0)\n"
-+    "ld a2, 16(t0)\n"
-+    "ld a3, 24(t0)\n"
-+    "ld a4, 32(t0)\n"
-+    "ld a5, 40(t0)\n"
-+    "ld a6, 48(t0)\n"
-+    // Enter the kernel
-+    "scall\n"
-+    "2:ret\n"
-+    ".cfi_endproc\n"
-+    ".size SyscallAsm, .-SyscallAsm\n"
- #endif
-     );  // asm
- 
-@@ -425,6 +447,18 @@ intptr_t Syscall::Call(int nr,
-     ret = inout;
-   }
- 
-+#elif defined(__riscv)
-+  intptr_t ret;
-+  {
-+    register intptr_t inout __asm__("a0") = nr;
-+    register const intptr_t* data __asm__("t0") = args;
-+    asm volatile("jal SyscallAsm\n"
-+                 : "+r"(inout)
-+                 : "r"(data)
-+                 : "memory", "a1", "a2", "a3", "a4", "a5", "a6");
-+    ret = inout;
-+  }
-+
- #else
- #error "Unimplemented architecture"
- #endif
-Index: chromium-107.0.5304.87/sandbox/linux/services/credentials.cc
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/services/credentials.cc
-+++ chromium-107.0.5304.87/sandbox/linux/services/credentials.cc
-@@ -80,7 +80,7 @@ bool ChrootToSafeEmptyDir() {
-   pid_t pid = -1;
-   alignas(16) char stack_buf[PTHREAD_STACK_MIN];
- #if defined(ARCH_CPU_X86_FAMILY) || defined(ARCH_CPU_ARM_FAMILY) || \
--    defined(ARCH_CPU_MIPS_FAMILY)
-+    defined(ARCH_CPU_MIPS_FAMILY) || defined(ARCH_CPU_RISCV_FAMILY)
-   // The stack grows downward.
-   void* stack = stack_buf + sizeof(stack_buf);
- #else
-Index: chromium-107.0.5304.87/sandbox/linux/services/syscall_wrappers.cc
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/services/syscall_wrappers.cc
-+++ chromium-107.0.5304.87/sandbox/linux/services/syscall_wrappers.cc
-@@ -61,7 +61,7 @@ long sys_clone(unsigned long flags,
- #if defined(ARCH_CPU_X86_64)
-   return syscall(__NR_clone, flags, child_stack, ptid, ctid, tls);
- #elif defined(ARCH_CPU_X86) || defined(ARCH_CPU_ARM_FAMILY) || \
--    defined(ARCH_CPU_MIPS_FAMILY)
-+    defined(ARCH_CPU_MIPS_FAMILY) || defined(ARCH_CPU_RISCV_FAMILY)
-   // CONFIG_CLONE_BACKWARDS defined.
-   return syscall(__NR_clone, flags, child_stack, ptid, tls, ctid);
- #endif
-Index: chromium-107.0.5304.87/sandbox/linux/syscall_broker/broker_process.cc
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/syscall_broker/broker_process.cc
-+++ chromium-107.0.5304.87/sandbox/linux/syscall_broker/broker_process.cc
-@@ -117,44 +117,46 @@ bool BrokerProcess::IsSyscallBrokerable(
-   // and are default disabled in Android. So, we should refuse to broker them
-   // to be consistent with the platform's restrictions.
-   switch (sysno) {
--#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID)
-+#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID) && !defined(__riscv)
-     case __NR_access:
- #endif
-     case __NR_faccessat:
-     case __NR_faccessat2:
-       return !fast_check || policy_->allowed_command_set.test(COMMAND_ACCESS);
- 
--#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID)
-+#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID) && !defined(__riscv)
-     case __NR_mkdir:
- #endif
-     case __NR_mkdirat:
-       return !fast_check || policy_->allowed_command_set.test(COMMAND_MKDIR);
- 
--#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID)
-+#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID) && !defined(__riscv)
-     case __NR_open:
- #endif
-     case __NR_openat:
-       return !fast_check || policy_->allowed_command_set.test(COMMAND_OPEN);
- 
--#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID)
-+#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID) && !defined(__riscv)
-     case __NR_readlink:
- #endif
-     case __NR_readlinkat:
-       return !fast_check || policy_->allowed_command_set.test(COMMAND_READLINK);
- 
--#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID)
-+#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID) && !defined(__riscv)
-     case __NR_rename:
- #endif
-+#ifdef __NR_renameat
-     case __NR_renameat:
-+#endif
-     case __NR_renameat2:
-       return !fast_check || policy_->allowed_command_set.test(COMMAND_RENAME);
- 
--#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID)
-+#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID) && !defined(__riscv)
-     case __NR_rmdir:
-       return !fast_check || policy_->allowed_command_set.test(COMMAND_RMDIR);
- #endif
- 
--#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID)
-+#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID) && !defined(__riscv)
-     case __NR_stat:
-     case __NR_lstat:
- #endif
-@@ -164,7 +166,7 @@ bool BrokerProcess::IsSyscallBrokerable(
- #if defined(__NR_fstatat64)
-     case __NR_fstatat64:
- #endif
--#if defined(__x86_64__) || defined(__aarch64__)
-+#if defined(__x86_64__) || defined(__aarch64__) || defined(__riscv)
-     case __NR_newfstatat:
- #endif
-       return !fast_check || policy_->allowed_command_set.test(COMMAND_STAT);
-@@ -179,7 +181,7 @@ bool BrokerProcess::IsSyscallBrokerable(
-       return !fast_check || policy_->allowed_command_set.test(COMMAND_STAT);
- #endif
- 
--#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID)
-+#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID) && !defined(__riscv)
-     case __NR_unlink:
-       return !fast_check || policy_->allowed_command_set.test(COMMAND_UNLINK);
- #endif
-Index: chromium-107.0.5304.87/sandbox/linux/system_headers/linux_seccomp.h
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/system_headers/linux_seccomp.h
-+++ chromium-107.0.5304.87/sandbox/linux/system_headers/linux_seccomp.h
-@@ -38,6 +38,9 @@
- #ifndef EM_AARCH64
- #define EM_AARCH64 183
- #endif
-+#ifndef EM_RISCV
-+#define EM_RISCV 243
-+#endif
- 
- #ifndef __AUDIT_ARCH_64BIT
- #define __AUDIT_ARCH_64BIT 0x80000000
-@@ -70,6 +73,9 @@
- #ifndef AUDIT_ARCH_AARCH64
- #define AUDIT_ARCH_AARCH64 (EM_AARCH64 | __AUDIT_ARCH_64BIT | __AUDIT_ARCH_LE)
- #endif
-+#ifndef AUDIT_ARCH_RISCV64
-+#define AUDIT_ARCH_RISCV64 (EM_RISCV|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)
-+#endif
- 
- // For prctl.h
- #ifndef PR_SET_SECCOMP
-Index: chromium-107.0.5304.87/sandbox/linux/system_headers/linux_signal.h
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/system_headers/linux_signal.h
-+++ chromium-107.0.5304.87/sandbox/linux/system_headers/linux_signal.h
-@@ -13,7 +13,7 @@
- // (not undefined, but defined different values and in different memory
- // layouts). So, fill the gap here.
- #if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
- 
- #define LINUX_SIGHUP 1
- #define LINUX_SIGINT 2
-Index: chromium-107.0.5304.87/sandbox/linux/system_headers/linux_stat.h
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/system_headers/linux_stat.h
-+++ chromium-107.0.5304.87/sandbox/linux/system_headers/linux_stat.h
-@@ -150,7 +150,7 @@ struct kernel_stat {
-   int st_blocks;
-   int st_pad4[14];
- };
--#elif defined(__aarch64__)
-+#elif defined(__aarch64__) || defined(__riscv)
- struct kernel_stat {
-   unsigned long st_dev;
-   unsigned long st_ino;
-Index: chromium-107.0.5304.87/sandbox/linux/system_headers/linux_syscalls.h
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/system_headers/linux_syscalls.h
-+++ chromium-107.0.5304.87/sandbox/linux/system_headers/linux_syscalls.h
-@@ -35,5 +35,9 @@
- #include "sandbox/linux/system_headers/arm64_linux_syscalls.h"
- #endif
- 
-+#if defined(__riscv) && __riscv_xlen == 64
-+#include "sandbox/linux/system_headers/riscv64_linux_syscalls.h"
-+#endif
-+
- #endif  // SANDBOX_LINUX_SYSTEM_HEADERS_LINUX_SYSCALLS_H_
- 
-Index: chromium-107.0.5304.87/sandbox/linux/system_headers/riscv64_linux_syscalls.h
-===================================================================
---- /dev/null
-+++ chromium-107.0.5304.87/sandbox/linux/system_headers/riscv64_linux_syscalls.h
-@@ -0,0 +1,1222 @@
-+// Copyright 2014 The Chromium Authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+#ifndef SANDBOX_LINUX_SYSTEM_HEADERS_RISCV64_LINUX_SYSCALLS_H_
-+#define SANDBOX_LINUX_SYSTEM_HEADERS_RISCV64_LINUX_SYSCALLS_H_
-+
-+#include <asm-generic/unistd.h>
-+
-+#if !defined(__NR_io_setup)
-+#define __NR_io_setup 0
-+#endif
-+
-+#if !defined(__NR_io_destroy)
-+#define __NR_io_destroy 1
-+#endif
-+
-+#if !defined(__NR_io_submit)
-+#define __NR_io_submit 2
-+#endif
-+
-+#if !defined(__NR_io_cancel)
-+#define __NR_io_cancel 3
-+#endif
-+
-+#if !defined(__NR_io_getevents)
-+#define __NR_io_getevents 4
-+#endif
-+
-+#if !defined(__NR_setxattr)
-+#define __NR_setxattr 5
-+#endif
-+
-+#if !defined(__NR_lsetxattr)
-+#define __NR_lsetxattr 6
-+#endif
-+
-+#if !defined(__NR_fsetxattr)
-+#define __NR_fsetxattr 7
-+#endif
-+
-+#if !defined(__NR_getxattr)
-+#define __NR_getxattr 8
-+#endif
-+
-+#if !defined(__NR_lgetxattr)
-+#define __NR_lgetxattr 9
-+#endif
-+
-+#if !defined(__NR_fgetxattr)
-+#define __NR_fgetxattr 10
-+#endif
-+
-+#if !defined(__NR_listxattr)
-+#define __NR_listxattr 11
-+#endif
-+
-+#if !defined(__NR_llistxattr)
-+#define __NR_llistxattr 12
-+#endif
-+
-+#if !defined(__NR_flistxattr)
-+#define __NR_flistxattr 13
-+#endif
-+
-+#if !defined(__NR_removexattr)
-+#define __NR_removexattr 14
-+#endif
-+
-+#if !defined(__NR_lremovexattr)
-+#define __NR_lremovexattr 15
-+#endif
-+
-+#if !defined(__NR_fremovexattr)
-+#define __NR_fremovexattr 16
-+#endif
-+
-+#if !defined(__NR_getcwd)
-+#define __NR_getcwd 17
-+#endif
-+
-+#if !defined(__NR_lookup_dcookie)
-+#define __NR_lookup_dcookie 18
-+#endif
-+
-+#if !defined(__NR_eventfd2)
-+#define __NR_eventfd2 19
-+#endif
-+
-+#if !defined(__NR_epoll_create1)
-+#define __NR_epoll_create1 20
-+#endif
-+
-+#if !defined(__NR_epoll_ctl)
-+#define __NR_epoll_ctl 21
-+#endif
-+
-+#if !defined(__NR_epoll_pwait)
-+#define __NR_epoll_pwait 22
-+#endif
-+
-+#if !defined(__NR_dup)
-+#define __NR_dup 23
-+#endif
-+
-+#if !defined(__NR_dup3)
-+#define __NR_dup3 24
-+#endif
-+
-+#if !defined(__NR_fcntl)
-+#define __NR_fcntl 25
-+#endif
-+
-+#if !defined(__NR_inotify_init1)
-+#define __NR_inotify_init1 26
-+#endif
-+
-+#if !defined(__NR_inotify_add_watch)
-+#define __NR_inotify_add_watch 27
-+#endif
-+
-+#if !defined(__NR_inotify_rm_watch)
-+#define __NR_inotify_rm_watch 28
-+#endif
-+
-+#if !defined(__NR_ioctl)
-+#define __NR_ioctl 29
-+#endif
-+
-+#if !defined(__NR_ioprio_set)
-+#define __NR_ioprio_set 30
-+#endif
-+
-+#if !defined(__NR_ioprio_get)
-+#define __NR_ioprio_get 31
-+#endif
-+
-+#if !defined(__NR_flock)
-+#define __NR_flock 32
-+#endif
-+
-+#if !defined(__NR_mknodat)
-+#define __NR_mknodat 33
-+#endif
-+
-+#if !defined(__NR_mkdirat)
-+#define __NR_mkdirat 34
-+#endif
-+
-+#if !defined(__NR_unlinkat)
-+#define __NR_unlinkat 35
-+#endif
-+
-+#if !defined(__NR_symlinkat)
-+#define __NR_symlinkat 36
-+#endif
-+
-+#if !defined(__NR_linkat)
-+#define __NR_linkat 37
-+#endif
-+
-+#if !defined(__NR_renameat)
-+#define __NR_renameat 38
-+#endif
-+
-+#if !defined(__NR_umount2)
-+#define __NR_umount2 39
-+#endif
-+
-+#if !defined(__NR_mount)
-+#define __NR_mount 40
-+#endif
-+
-+#if !defined(__NR_pivot_root)
-+#define __NR_pivot_root 41
-+#endif
-+
-+#if !defined(__NR_nfsservctl)
-+#define __NR_nfsservctl 42
-+#endif
-+
-+#if !defined(__NR_statfs)
-+#define __NR_statfs 43
-+#endif
-+
-+#if !defined(__NR_fstatfs)
-+#define __NR_fstatfs 44
-+#endif
-+
-+#if !defined(__NR_truncate)
-+#define __NR_truncate 45
-+#endif
-+
-+#if !defined(__NR_ftruncate)
-+#define __NR_ftruncate 46
-+#endif
-+
-+#if !defined(__NR_fallocate)
-+#define __NR_fallocate 47
-+#endif
-+
-+#if !defined(__NR_faccessat)
-+#define __NR_faccessat 48
-+#endif
-+
-+#if !defined(__NR_chdir)
-+#define __NR_chdir 49
-+#endif
-+
-+#if !defined(__NR_fchdir)
-+#define __NR_fchdir 50
-+#endif
-+
-+#if !defined(__NR_chroot)
-+#define __NR_chroot 51
-+#endif
-+
-+#if !defined(__NR_fchmod)
-+#define __NR_fchmod 52
-+#endif
-+
-+#if !defined(__NR_fchmodat)
-+#define __NR_fchmodat 53
-+#endif
-+
-+#if !defined(__NR_fchownat)
-+#define __NR_fchownat 54
-+#endif
-+
-+#if !defined(__NR_fchown)
-+#define __NR_fchown 55
-+#endif
-+
-+#if !defined(__NR_openat)
-+#define __NR_openat 56
-+#endif
-+
-+#if !defined(__NR_close)
-+#define __NR_close 57
-+#endif
-+
-+#if !defined(__NR_vhangup)
-+#define __NR_vhangup 58
-+#endif
-+
-+#if !defined(__NR_pipe2)
-+#define __NR_pipe2 59
-+#endif
-+
-+#if !defined(__NR_quotactl)
-+#define __NR_quotactl 60
-+#endif
-+
-+#if !defined(__NR_getdents64)
-+#define __NR_getdents64 61
-+#endif
-+
-+#if !defined(__NR_lseek)
-+#define __NR_lseek 62
-+#endif
-+
-+#if !defined(__NR_read)
-+#define __NR_read 63
-+#endif
-+
-+#if !defined(__NR_write)
-+#define __NR_write 64
-+#endif
-+
-+#if !defined(__NR_readv)
-+#define __NR_readv 65
-+#endif
-+
-+#if !defined(__NR_writev)
-+#define __NR_writev 66
-+#endif
-+
-+#if !defined(__NR_pread64)
-+#define __NR_pread64 67
-+#endif
-+
-+#if !defined(__NR_pwrite64)
-+#define __NR_pwrite64 68
-+#endif
-+
-+#if !defined(__NR_preadv)
-+#define __NR_preadv 69
-+#endif
-+
-+#if !defined(__NR_pwritev)
-+#define __NR_pwritev 70
-+#endif
-+
-+#if !defined(__NR_sendfile)
-+#define __NR_sendfile 71
-+#endif
-+
-+#if !defined(__NR_pselect6)
-+#define __NR_pselect6 72
-+#endif
-+
-+#if !defined(__NR_ppoll)
-+#define __NR_ppoll 73
-+#endif
-+
-+#if !defined(__NR_signalfd4)
-+#define __NR_signalfd4 74
-+#endif
-+
-+#if !defined(__NR_vmsplice)
-+#define __NR_vmsplice 75
-+#endif
-+
-+#if !defined(__NR_splice)
-+#define __NR_splice 76
-+#endif
-+
-+#if !defined(__NR_tee)
-+#define __NR_tee 77
-+#endif
-+
-+#if !defined(__NR_readlinkat)
-+#define __NR_readlinkat 78
-+#endif
-+
-+#if !defined(__NR_newfstatat)
-+#define __NR_newfstatat 79
-+#endif
-+
-+#if !defined(__NR_fstat)
-+#define __NR_fstat 80
-+#endif
-+
-+#if !defined(__NR_sync)
-+#define __NR_sync 81
-+#endif
-+
-+#if !defined(__NR_fsync)
-+#define __NR_fsync 82
-+#endif
-+
-+#if !defined(__NR_fdatasync)
-+#define __NR_fdatasync 83
-+#endif
-+
-+#if !defined(__NR_sync_file_range)
-+#define __NR_sync_file_range 84
-+#endif
-+
-+#if !defined(__NR_timerfd_create)
-+#define __NR_timerfd_create 85
-+#endif
-+
-+#if !defined(__NR_timerfd_settime)
-+#define __NR_timerfd_settime 86
-+#endif
-+
-+#if !defined(__NR_timerfd_gettime)
-+#define __NR_timerfd_gettime 87
-+#endif
-+
-+#if !defined(__NR_utimensat)
-+#define __NR_utimensat 88
-+#endif
-+
-+#if !defined(__NR_acct)
-+#define __NR_acct 89
-+#endif
-+
-+#if !defined(__NR_capget)
-+#define __NR_capget 90
-+#endif
-+
-+#if !defined(__NR_capset)
-+#define __NR_capset 91
-+#endif
-+
-+#if !defined(__NR_personality)
-+#define __NR_personality 92
-+#endif
-+
-+#if !defined(__NR_exit)
-+#define __NR_exit 93
-+#endif
-+
-+#if !defined(__NR_exit_group)
-+#define __NR_exit_group 94
-+#endif
-+
-+#if !defined(__NR_waitid)
-+#define __NR_waitid 95
-+#endif
-+
-+#if !defined(__NR_set_tid_address)
-+#define __NR_set_tid_address 96
-+#endif
-+
-+#if !defined(__NR_unshare)
-+#define __NR_unshare 97
-+#endif
-+
-+#if !defined(__NR_futex)
-+#define __NR_futex 98
-+#endif
-+
-+#if !defined(__NR_set_robust_list)
-+#define __NR_set_robust_list 99
-+#endif
-+
-+#if !defined(__NR_get_robust_list)
-+#define __NR_get_robust_list 100
-+#endif
-+
-+#if !defined(__NR_nanosleep)
-+#define __NR_nanosleep 101
-+#endif
-+
-+#if !defined(__NR_getitimer)
-+#define __NR_getitimer 102
-+#endif
-+
-+#if !defined(__NR_setitimer)
-+#define __NR_setitimer 103
-+#endif
-+
-+#if !defined(__NR_kexec_load)
-+#define __NR_kexec_load 104
-+#endif
-+
-+#if !defined(__NR_init_module)
-+#define __NR_init_module 105
-+#endif
-+
-+#if !defined(__NR_delete_module)
-+#define __NR_delete_module 106
-+#endif
-+
-+#if !defined(__NR_timer_create)
-+#define __NR_timer_create 107
-+#endif
-+
-+#if !defined(__NR_timer_gettime)
-+#define __NR_timer_gettime 108
-+#endif
-+
-+#if !defined(__NR_timer_getoverrun)
-+#define __NR_timer_getoverrun 109
-+#endif
-+
-+#if !defined(__NR_timer_settime)
-+#define __NR_timer_settime 110
-+#endif
-+
-+#if !defined(__NR_timer_delete)
-+#define __NR_timer_delete 111
-+#endif
-+
-+#if !defined(__NR_clock_settime)
-+#define __NR_clock_settime 112
-+#endif
-+
-+#if !defined(__NR_clock_gettime)
-+#define __NR_clock_gettime 113
-+#endif
-+
-+#if !defined(__NR_clock_getres)
-+#define __NR_clock_getres 114
-+#endif
-+
-+#if !defined(__NR_clock_nanosleep)
-+#define __NR_clock_nanosleep 115
-+#endif
-+
-+#if !defined(__NR_syslog)
-+#define __NR_syslog 116
-+#endif
-+
-+#if !defined(__NR_ptrace)
-+#define __NR_ptrace 117
-+#endif
-+
-+#if !defined(__NR_sched_setparam)
-+#define __NR_sched_setparam 118
-+#endif
-+
-+#if !defined(__NR_sched_setscheduler)
-+#define __NR_sched_setscheduler 119
-+#endif
-+
-+#if !defined(__NR_sched_getscheduler)
-+#define __NR_sched_getscheduler 120
-+#endif
-+
-+#if !defined(__NR_sched_getparam)
-+#define __NR_sched_getparam 121
-+#endif
-+
-+#if !defined(__NR_sched_setaffinity)
-+#define __NR_sched_setaffinity 122
-+#endif
-+
-+#if !defined(__NR_sched_getaffinity)
-+#define __NR_sched_getaffinity 123
-+#endif
-+
-+#if !defined(__NR_sched_yield)
-+#define __NR_sched_yield 124
-+#endif
-+
-+#if !defined(__NR_sched_get_priority_max)
-+#define __NR_sched_get_priority_max 125
-+#endif
-+
-+#if !defined(__NR_sched_get_priority_min)
-+#define __NR_sched_get_priority_min 126
-+#endif
-+
-+#if !defined(__NR_sched_rr_get_interval)
-+#define __NR_sched_rr_get_interval 127
-+#endif
-+
-+#if !defined(__NR_restart_syscall)
-+#define __NR_restart_syscall 128
-+#endif
-+
-+#if !defined(__NR_kill)
-+#define __NR_kill 129
-+#endif
-+
-+#if !defined(__NR_tkill)
-+#define __NR_tkill 130
-+#endif
-+
-+#if !defined(__NR_tgkill)
-+#define __NR_tgkill 131
-+#endif
-+
-+#if !defined(__NR_sigaltstack)
-+#define __NR_sigaltstack 132
-+#endif
-+
-+#if !defined(__NR_rt_sigsuspend)
-+#define __NR_rt_sigsuspend 133
-+#endif
-+
-+#if !defined(__NR_rt_sigaction)
-+#define __NR_rt_sigaction 134
-+#endif
-+
-+#if !defined(__NR_rt_sigprocmask)
-+#define __NR_rt_sigprocmask 135
-+#endif
-+
-+#if !defined(__NR_rt_sigpending)
-+#define __NR_rt_sigpending 136
-+#endif
-+
-+#if !defined(__NR_rt_sigtimedwait)
-+#define __NR_rt_sigtimedwait 137
-+#endif
-+
-+#if !defined(__NR_rt_sigqueueinfo)
-+#define __NR_rt_sigqueueinfo 138
-+#endif
-+
-+#if !defined(__NR_rt_sigreturn)
-+#define __NR_rt_sigreturn 139
-+#endif
-+
-+#if !defined(__NR_setpriority)
-+#define __NR_setpriority 140
-+#endif
-+
-+#if !defined(__NR_getpriority)
-+#define __NR_getpriority 141
-+#endif
-+
-+#if !defined(__NR_reboot)
-+#define __NR_reboot 142
-+#endif
-+
-+#if !defined(__NR_setregid)
-+#define __NR_setregid 143
-+#endif
-+
-+#if !defined(__NR_setgid)
-+#define __NR_setgid 144
-+#endif
-+
-+#if !defined(__NR_setreuid)
-+#define __NR_setreuid 145
-+#endif
-+
-+#if !defined(__NR_setuid)
-+#define __NR_setuid 146
-+#endif
-+
-+#if !defined(__NR_setresuid)
-+#define __NR_setresuid 147
-+#endif
-+
-+#if !defined(__NR_getresuid)
-+#define __NR_getresuid 148
-+#endif
-+
-+#if !defined(__NR_setresgid)
-+#define __NR_setresgid 149
-+#endif
-+
-+#if !defined(__NR_getresgid)
-+#define __NR_getresgid 150
-+#endif
-+
-+#if !defined(__NR_setfsuid)
-+#define __NR_setfsuid 151
-+#endif
-+
-+#if !defined(__NR_setfsgid)
-+#define __NR_setfsgid 152
-+#endif
-+
-+#if !defined(__NR_times)
-+#define __NR_times 153
-+#endif
-+
-+#if !defined(__NR_setpgid)
-+#define __NR_setpgid 154
-+#endif
-+
-+#if !defined(__NR_getpgid)
-+#define __NR_getpgid 155
-+#endif
-+
-+#if !defined(__NR_getsid)
-+#define __NR_getsid 156
-+#endif
-+
-+#if !defined(__NR_setsid)
-+#define __NR_setsid 157
-+#endif
-+
-+#if !defined(__NR_getgroups)
-+#define __NR_getgroups 158
-+#endif
-+
-+#if !defined(__NR_setgroups)
-+#define __NR_setgroups 159
-+#endif
-+
-+#if !defined(__NR_uname)
-+#define __NR_uname 160
-+#endif
-+
-+#if !defined(__NR_sethostname)
-+#define __NR_sethostname 161
-+#endif
-+
-+#if !defined(__NR_setdomainname)
-+#define __NR_setdomainname 162
-+#endif
-+
-+#if !defined(__NR_getrlimit)
-+#define __NR_getrlimit 163
-+#endif
-+
-+#if !defined(__NR_setrlimit)
-+#define __NR_setrlimit 164
-+#endif
-+
-+#if !defined(__NR_getrusage)
-+#define __NR_getrusage 165
-+#endif
-+
-+#if !defined(__NR_umask)
-+#define __NR_umask 166
-+#endif
-+
-+#if !defined(__NR_prctl)
-+#define __NR_prctl 167
-+#endif
-+
-+#if !defined(__NR_getcpu)
-+#define __NR_getcpu 168
-+#endif
-+
-+#if !defined(__NR_gettimeofday)
-+#define __NR_gettimeofday 169
-+#endif
-+
-+#if !defined(__NR_settimeofday)
-+#define __NR_settimeofday 170
-+#endif
-+
-+#if !defined(__NR_adjtimex)
-+#define __NR_adjtimex 171
-+#endif
-+
-+#if !defined(__NR_getpid)
-+#define __NR_getpid 172
-+#endif
-+
-+#if !defined(__NR_getppid)
-+#define __NR_getppid 173
-+#endif
-+
-+#if !defined(__NR_getuid)
-+#define __NR_getuid 174
-+#endif
-+
-+#if !defined(__NR_geteuid)
-+#define __NR_geteuid 175
-+#endif
-+
-+#if !defined(__NR_getgid)
-+#define __NR_getgid 176
-+#endif
-+
-+#if !defined(__NR_getegid)
-+#define __NR_getegid 177
-+#endif
-+
-+#if !defined(__NR_gettid)
-+#define __NR_gettid 178
-+#endif
-+
-+#if !defined(__NR_sysinfo)
-+#define __NR_sysinfo 179
-+#endif
-+
-+#if !defined(__NR_mq_open)
-+#define __NR_mq_open 180
-+#endif
-+
-+#if !defined(__NR_mq_unlink)
-+#define __NR_mq_unlink 181
-+#endif
-+
-+#if !defined(__NR_mq_timedsend)
-+#define __NR_mq_timedsend 182
-+#endif
-+
-+#if !defined(__NR_mq_timedreceive)
-+#define __NR_mq_timedreceive 183
-+#endif
-+
-+#if !defined(__NR_mq_notify)
-+#define __NR_mq_notify 184
-+#endif
-+
-+#if !defined(__NR_mq_getsetattr)
-+#define __NR_mq_getsetattr 185
-+#endif
-+
-+#if !defined(__NR_msgget)
-+#define __NR_msgget 186
-+#endif
-+
-+#if !defined(__NR_msgctl)
-+#define __NR_msgctl 187
-+#endif
-+
-+#if !defined(__NR_msgrcv)
-+#define __NR_msgrcv 188
-+#endif
-+
-+#if !defined(__NR_msgsnd)
-+#define __NR_msgsnd 189
-+#endif
-+
-+#if !defined(__NR_semget)
-+#define __NR_semget 190
-+#endif
-+
-+#if !defined(__NR_semctl)
-+#define __NR_semctl 191
-+#endif
-+
-+#if !defined(__NR_semtimedop)
-+#define __NR_semtimedop 192
-+#endif
-+
-+#if !defined(__NR_semop)
-+#define __NR_semop 193
-+#endif
-+
-+#if !defined(__NR_shmget)
-+#define __NR_shmget 194
-+#endif
-+
-+#if !defined(__NR_shmctl)
-+#define __NR_shmctl 195
-+#endif
-+
-+#if !defined(__NR_shmat)
-+#define __NR_shmat 196
-+#endif
-+
-+#if !defined(__NR_shmdt)
-+#define __NR_shmdt 197
-+#endif
-+
-+#if !defined(__NR_socket)
-+#define __NR_socket 198
-+#endif
-+
-+#if !defined(__NR_socketpair)
-+#define __NR_socketpair 199
-+#endif
-+
-+#if !defined(__NR_bind)
-+#define __NR_bind 200
-+#endif
-+
-+#if !defined(__NR_listen)
-+#define __NR_listen 201
-+#endif
-+
-+#if !defined(__NR_accept)
-+#define __NR_accept 202
-+#endif
-+
-+#if !defined(__NR_connect)
-+#define __NR_connect 203
-+#endif
-+
-+#if !defined(__NR_getsockname)
-+#define __NR_getsockname 204
-+#endif
-+
-+#if !defined(__NR_getpeername)
-+#define __NR_getpeername 205
-+#endif
-+
-+#if !defined(__NR_sendto)
-+#define __NR_sendto 206
-+#endif
-+
-+#if !defined(__NR_recvfrom)
-+#define __NR_recvfrom 207
-+#endif
-+
-+#if !defined(__NR_setsockopt)
-+#define __NR_setsockopt 208
-+#endif
-+
-+#if !defined(__NR_getsockopt)
-+#define __NR_getsockopt 209
-+#endif
-+
-+#if !defined(__NR_shutdown)
-+#define __NR_shutdown 210
-+#endif
-+
-+#if !defined(__NR_sendmsg)
-+#define __NR_sendmsg 211
-+#endif
-+
-+#if !defined(__NR_recvmsg)
-+#define __NR_recvmsg 212
-+#endif
-+
-+#if !defined(__NR_readahead)
-+#define __NR_readahead 213
-+#endif
-+
-+#if !defined(__NR_brk)
-+#define __NR_brk 214
-+#endif
-+
-+#if !defined(__NR_munmap)
-+#define __NR_munmap 215
-+#endif
-+
-+#if !defined(__NR_mremap)
-+#define __NR_mremap 216
-+#endif
-+
-+#if !defined(__NR_add_key)
-+#define __NR_add_key 217
-+#endif
-+
-+#if !defined(__NR_request_key)
-+#define __NR_request_key 218
-+#endif
-+
-+#if !defined(__NR_keyctl)
-+#define __NR_keyctl 219
-+#endif
-+
-+#if !defined(__NR_clone)
-+#define __NR_clone 220
-+#endif
-+
-+#if !defined(__NR_execve)
-+#define __NR_execve 221
-+#endif
-+
-+#if !defined(__NR_mmap)
-+#define __NR_mmap 222
-+#endif
-+
-+#if !defined(__NR_fadvise64)
-+#define __NR_fadvise64 223
-+#endif
-+
-+#if !defined(__NR_swapon)
-+#define __NR_swapon 224
-+#endif
-+
-+#if !defined(__NR_swapoff)
-+#define __NR_swapoff 225
-+#endif
-+
-+#if !defined(__NR_mprotect)
-+#define __NR_mprotect 226
-+#endif
-+
-+#if !defined(__NR_msync)
-+#define __NR_msync 227
-+#endif
-+
-+#if !defined(__NR_mlock)
-+#define __NR_mlock 228
-+#endif
-+
-+#if !defined(__NR_munlock)
-+#define __NR_munlock 229
-+#endif
-+
-+#if !defined(__NR_mlockall)
-+#define __NR_mlockall 230
-+#endif
-+
-+#if !defined(__NR_munlockall)
-+#define __NR_munlockall 231
-+#endif
-+
-+#if !defined(__NR_mincore)
-+#define __NR_mincore 232
-+#endif
-+
-+#if !defined(__NR_madvise)
-+#define __NR_madvise 233
-+#endif
-+
-+#if !defined(__NR_remap_file_pages)
-+#define __NR_remap_file_pages 234
-+#endif
-+
-+#if !defined(__NR_mbind)
-+#define __NR_mbind 235
-+#endif
-+
-+#if !defined(__NR_get_mempolicy)
-+#define __NR_get_mempolicy 236
-+#endif
-+
-+#if !defined(__NR_set_mempolicy)
-+#define __NR_set_mempolicy 237
-+#endif
-+
-+#if !defined(__NR_migrate_pages)
-+#define __NR_migrate_pages 238
-+#endif
-+
-+#if !defined(__NR_move_pages)
-+#define __NR_move_pages 239
-+#endif
-+
-+#if !defined(__NR_rt_tgsigqueueinfo)
-+#define __NR_rt_tgsigqueueinfo 240
-+#endif
-+
-+#if !defined(__NR_perf_event_open)
-+#define __NR_perf_event_open 241
-+#endif
-+
-+#if !defined(__NR_accept4)
-+#define __NR_accept4 242
-+#endif
-+
-+#if !defined(__NR_recvmmsg)
-+#define __NR_recvmmsg 243
-+#endif
-+
-+#if !defined(__NR_riscv_flush_icache)
-+#define __NR_riscv_flush_icache 259
-+#endif
-+
-+#if !defined(__NR_wait4)
-+#define __NR_wait4 260
-+#endif
-+
-+#if !defined(__NR_prlimit64)
-+#define __NR_prlimit64 261
-+#endif
-+
-+#if !defined(__NR_fanotify_init)
-+#define __NR_fanotify_init 262
-+#endif
-+
-+#if !defined(__NR_fanotify_mark)
-+#define __NR_fanotify_mark 263
-+#endif
-+
-+#if !defined(__NR_name_to_handle_at)
-+#define __NR_name_to_handle_at 264
-+#endif
-+
-+#if !defined(__NR_open_by_handle_at)
-+#define __NR_open_by_handle_at 265
-+#endif
-+
-+#if !defined(__NR_clock_adjtime)
-+#define __NR_clock_adjtime 266
-+#endif
-+
-+#if !defined(__NR_syncfs)
-+#define __NR_syncfs 267
-+#endif
-+
-+#if !defined(__NR_setns)
-+#define __NR_setns 268
-+#endif
-+
-+#if !defined(__NR_sendmmsg)
-+#define __NR_sendmmsg 269
-+#endif
-+
-+#if !defined(__NR_process_vm_readv)
-+#define __NR_process_vm_readv 270
-+#endif
-+
-+#if !defined(__NR_process_vm_writev)
-+#define __NR_process_vm_writev 271
-+#endif
-+
-+#if !defined(__NR_kcmp)
-+#define __NR_kcmp 272
-+#endif
-+
-+#if !defined(__NR_finit_module)
-+#define __NR_finit_module 273
-+#endif
-+
-+#if !defined(__NR_sched_setattr)
-+#define __NR_sched_setattr 274
-+#endif
-+
-+#if !defined(__NR_sched_getattr)
-+#define __NR_sched_getattr 275
-+#endif
-+
-+#if !defined(__NR_renameat2)
-+#define __NR_renameat2 276
-+#endif
-+
-+#if !defined(__NR_seccomp)
-+#define __NR_seccomp 277
-+#endif
-+
-+#if !defined(__NR_getrandom)
-+#define __NR_getrandom 278
-+#endif
-+
-+#if !defined(__NR_memfd_create)
-+#define __NR_memfd_create 279
-+#endif
-+
-+#if !defined(__NR_bpf)
-+#define __NR_bpf 280
-+#endif
-+
-+#if !defined(__NR_execveat)
-+#define __NR_execveat 281
-+#endif
-+
-+#if !defined(__NR_userfaultfd)
-+#define __NR_userfaultfd 282
-+#endif
-+
-+#if !defined(__NR_membarrier)
-+#define __NR_membarrier 283
-+#endif
-+
-+#if !defined(__NR_mlock2)
-+#define __NR_mlock2 284
-+#endif
-+
-+#if !defined(__NR_copy_file_range)
-+#define __NR_copy_file_range 285
-+#endif
-+
-+#if !defined(__NR_preadv2)
-+#define __NR_preadv2 286
-+#endif
-+
-+#if !defined(__NR_pwritev2)
-+#define __NR_pwritev2 287
-+#endif
-+
-+#if !defined(__NR_pkey_mprotect)
-+#define __NR_pkey_mprotect 288
-+#endif
-+
-+#if !defined(__NR_pkey_alloc)
-+#define __NR_pkey_alloc 289
-+#endif
-+
-+#if !defined(__NR_pkey_free)
-+#define __NR_pkey_free 290
-+#endif
-+
-+#if !defined(__NR_statx)
-+#define __NR_statx 291
-+#endif
-+
-+#if !defined(__NR_io_pgetevents)
-+#define __NR_io_pgetevents 292
-+#endif
-+
-+#if !defined(__NR_rseq)
-+#define __NR_rseq 293
-+#endif
-+
-+#if !defined(__NR_kexec_file_load)
-+#define __NR_kexec_file_load 294
-+#endif
-+
-+#if !defined(__NR_pidfd_send_signal)
-+#define __NR_pidfd_send_signal 424
-+#endif
-+
-+#if !defined(__NR_io_uring_setup)
-+#define __NR_io_uring_setup 425
-+#endif
-+
-+#if !defined(__NR_io_uring_enter)
-+#define __NR_io_uring_enter 426
-+#endif
-+
-+#if !defined(__NR_io_uring_register)
-+#define __NR_io_uring_register 427
-+#endif
-+
-+#if !defined(__NR_open_tree)
-+#define __NR_open_tree 428
-+#endif
-+
-+#if !defined(__NR_move_mount)
-+#define __NR_move_mount 429
-+#endif
-+
-+#if !defined(__NR_fsopen)
-+#define __NR_fsopen 430
-+#endif
-+
-+#if !defined(__NR_fsconfig)
-+#define __NR_fsconfig 431
-+#endif
-+
-+#if !defined(__NR_fsmount)
-+#define __NR_fsmount 432
-+#endif
-+
-+#if !defined(__NR_fspick)
-+#define __NR_fspick 433
-+#endif
-+
-+#if !defined(__NR_pidfd_open)
-+#define __NR_pidfd_open 434
-+#endif
-+
-+#if !defined(__NR_clone3)
-+#define __NR_clone3 435
-+#endif
-+
-+#if !defined(__NR_close_range)
-+#define __NR_close_range 436
-+#endif
-+
-+#if !defined(__NR_openat2)
-+#define __NR_openat2 437
-+#endif
-+
-+#if !defined(__NR_pidfd_getfd)
-+#define __NR_pidfd_getfd 438
-+#endif
-+
-+#if !defined(__NR_faccessat2)
-+#define __NR_faccessat2 439
-+#endif
-+
-+#if !defined(__NR_process_madvise)
-+#define __NR_process_madvise 440
-+#endif
-+
-+#if !defined(__NR_epoll_pwait2)
-+#define __NR_epoll_pwait2 441
-+#endif
-+
-+#if !defined(__NR_mount_setattr)
-+#define __NR_mount_setattr 442
-+#endif
-+
-+#if !defined(__NR_quotactl_path)
-+#define __NR_quotactl_path 443
-+#endif
-+
-+#if !defined(__NR_landlock_create_ruleset)
-+#define __NR_landlock_create_ruleset 444
-+#endif
-+
-+#if !defined(__NR_landlock_add_rule)
-+#define __NR_landlock_add_rule 445
-+#endif
-+
-+#if !defined(__NR_landlock_restrict_self)
-+#define __NR_landlock_restrict_self 446
-+#endif
-+
-+#endif  // SANDBOX_LINUX_SYSTEM_HEADERS_RISCV64_LINUX_SYSCALLS_H_
-Index: chromium-107.0.5304.87/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc
-+++ chromium-107.0.5304.87/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc
-@@ -38,7 +38,7 @@ ResultExpr CrosAmdGpuProcessPolicy::Eval
-     case __NR_sched_setscheduler:
-     case __NR_sysinfo:
-     case __NR_uname:
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_readlink:
-     case __NR_stat:
- #endif
-Index: chromium-107.0.5304.87/sandbox/policy/linux/bpf_gpu_policy_linux.cc
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/policy/linux/bpf_gpu_policy_linux.cc
-+++ chromium-107.0.5304.87/sandbox/policy/linux/bpf_gpu_policy_linux.cc
-@@ -73,7 +73,7 @@ ResultExpr GpuProcessPolicy::EvaluateSys
-     (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
-     case __NR_ftruncate64:
- #endif
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_getdents:
- #endif
-     case __NR_getdents64:
-
diff --git a/srcpkgs/qt6-pdf/patches/0007-riscv-sandbox.patch.args b/srcpkgs/qt6-pdf/patches/0007-riscv-sandbox.patch.args
deleted file mode 100644
index d5f38e354e7f00..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0007-riscv-sandbox.patch.args
+++ /dev/null
@@ -1 +0,0 @@
--Np1 --directory=src/3rdparty/chromium/
diff --git a/srcpkgs/qt6-pdf/patches/0008-rsicv-allocator.patch b/srcpkgs/qt6-pdf/patches/0008-rsicv-allocator.patch
deleted file mode 100644
index 98b009f6615790..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0008-rsicv-allocator.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc.gni	2023-10-03 21:49:54.000000000 +0200
-+++ -	2023-10-27 19:05:06.146398062 +0200
-@@ -14,7 +14,7 @@
- if (is_nacl) {
-   # NaCl targets don't use 64-bit pointers.
-   has_64_bit_pointers = false
--} else if (current_cpu == "x64" || current_cpu == "arm64") {
-+} else if (current_cpu == "x64" || current_cpu == "arm64" || current_cpu == "riscv64") {
-   has_64_bit_pointers = true
- } else if (current_cpu == "x86" || current_cpu == "arm") {
-   has_64_bit_pointers = false
diff --git a/srcpkgs/qt6-pdf/patches/0100-REVERT-roll-src-third_party-ffmpeg-m102.patch b/srcpkgs/qt6-pdf/patches/0100-REVERT-roll-src-third_party-ffmpeg-m102.patch
new file mode 100644
index 00000000000000..aaaa3018c57f3b
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0100-REVERT-roll-src-third_party-ffmpeg-m102.patch
@@ -0,0 +1,52 @@
+--- a/src/3rdparty/chromium/media/filters/audio_file_reader_unittest.cc
++++ b/src/3rdparty/chromium/media/filters/audio_file_reader_unittest.cc
+@@ -121,11 +121,11 @@ class AudioFileReaderTest : public testi
+     EXPECT_FALSE(reader_->Open());
+   }
+ 
+-  void RunTestFailingDecode(const char* fn, int expect_read = 0) {
++  void RunTestFailingDecode(const char* fn) {
+     Initialize(fn);
+     EXPECT_TRUE(reader_->Open());
+     std::vector<std::unique_ptr<AudioBus>> decoded_audio_packets;
+-    EXPECT_EQ(reader_->Read(&decoded_audio_packets), expect_read);
++    EXPECT_EQ(reader_->Read(&decoded_audio_packets), 0);
+   }
+ 
+   void RunTestPartialDecode(const char* fn) {
+@@ -219,7 +219,7 @@ TEST_F(AudioFileReaderTest, AAC_ADTS) {
+ }
+ 
+ TEST_F(AudioFileReaderTest, MidStreamConfigChangesFail) {
+-  RunTestFailingDecode("midstream_config_change.mp3", 42624);
++  RunTestFailingDecode("midstream_config_change.mp3");
+ }
+ #endif
+ 
+--- a/src/3rdparty/chromium/media/filters/audio_video_metadata_extractor.cc
++++ b/src/3rdparty/chromium/media/filters/audio_video_metadata_extractor.cc
+@@ -113,15 +113,6 @@ bool AudioVideoMetadataExtractor::Extrac
+     if (!stream)
+       continue;
+ 
+-    void* display_matrix =
+-        av_stream_get_side_data(stream, AV_PKT_DATA_DISPLAYMATRIX, nullptr);
+-    if (display_matrix) {
+-      rotation_ = VideoTransformation::FromFFmpegDisplayMatrix(
+-                      static_cast<int32_t*>(display_matrix))
+-                      .rotation;
+-      info.tags["rotate"] = base::NumberToString(rotation_);
+-    }
+-
+     // Extract dictionary from streams also. Needed for containers that attach
+     // metadata to contained streams instead the container itself, like OGG.
+     ExtractDictionary(stream->metadata, &info.tags);
+@@ -264,6 +255,8 @@ void AudioVideoMetadataExtractor::Extrac
+     if (raw_tags->find(tag->key) == raw_tags->end())
+       (*raw_tags)[tag->key] = tag->value;
+ 
++    if (ExtractInt(tag, "rotate", &rotation_))
++      continue;
+     if (ExtractString(tag, "album", &album_))
+       continue;
+     if (ExtractString(tag, "artist", &artist_))
diff --git a/srcpkgs/qt6-pdf/patches/0104-angle-wayland-include.patch b/srcpkgs/qt6-pdf/patches/0104-angle-wayland-include.patch
new file mode 100644
index 00000000000000..bdae89e41d392a
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0104-angle-wayland-include.patch
@@ -0,0 +1,37 @@
+Patch-Source: https://github.com/archlinux/svntogit-packages/blob/a353833a5a731abfaa465b658f61894a516aa49b/trunk/angle-wayland-include-protocol.patch
+--- a/src/3rdparty/chromium/third_party/angle/BUILD.gn
++++ b/src/3rdparty/chromium/third_party/angle/BUILD.gn
+@@ -588,6 +588,12 @@ config("angle_vulkan_wayland_config") {
+   if (angle_enable_vulkan && angle_use_wayland &&
+       defined(vulkan_wayland_include_dirs)) {
+     include_dirs = vulkan_wayland_include_dirs
++  } else if (angle_enable_vulkan && angle_use_wayland) {
++    include_dirs = [
++      "$wayland_gn_dir/src/src",
++      "$wayland_gn_dir/include/src",
++      "$wayland_gn_dir/include/protocol",
++    ]
+   }
+ }
+ 
+@@ -1176,6 +1182,7 @@ if (angle_use_wayland) {
+     include_dirs = [
+       "$wayland_dir/egl",
+       "$wayland_dir/src",
++      "$wayland_gn_dir/include/protocol",
+     ]
+   }
+ 
+--- a/src/3rdparty/chromium/third_party/angle/src/third_party/volk/BUILD.gn
++++ b/src/3rdparty/chromium/third_party/angle/src/third_party/volk/BUILD.gn
+@@ -21,6 +21,9 @@ source_set("volk") {
+   configs += [ "$angle_root:angle_no_cfi_icall" ]
+   public_deps = [ "$angle_vulkan_headers_dir:vulkan_headers" ]
+   if (angle_use_wayland) {
+-    include_dirs = [ "$wayland_dir/src" ]
++    include_dirs = [
++      "$wayland_dir/src",
++      "$wayland_gn_dir/include/protocol",
++    ]
+   }
+ }
diff --git a/srcpkgs/qt6-pdf/patches/0106-chromium-105.0.5195.52-python-six-1.16.0.patch b/srcpkgs/qt6-pdf/patches/0106-chromium-105.0.5195.52-python-six-1.16.0.patch
new file mode 100644
index 00000000000000..cfa7e05adc9481
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0106-chromium-105.0.5195.52-python-six-1.16.0.patch
@@ -0,0 +1,84 @@
+--- a/src/3rdparty/chromium/third_party/six/src/six.py
++++ b/src/3rdparty/chromium/third_party/six/src/six.py
+@@ -29,7 +29,7 @@ import sys
+ import types
+ 
+ __author__ = "Benjamin Peterson <benjamin@python.org>"
+-__version__ = "1.14.0"
++__version__ = "1.16.0"
+ 
+ 
+ # Useful for very coarse version differentiation.
+@@ -71,6 +71,11 @@ else:
+             MAXSIZE = int((1 << 63) - 1)
+         del X
+ 
++if PY34:
++    from importlib.util import spec_from_loader
++else:
++    spec_from_loader = None
++
+ 
+ def _add_doc(func, doc):
+     """Add documentation to a function."""
+@@ -186,6 +191,11 @@ class _SixMetaPathImporter(object):
+             return self
+         return None
+ 
++    def find_spec(self, fullname, path, target=None):
++        if fullname in self.known_modules:
++            return spec_from_loader(fullname, self)
++        return None
++
+     def __get_module(self, fullname):
+         try:
+             return self.known_modules[fullname]
+@@ -223,6 +233,12 @@ class _SixMetaPathImporter(object):
+         return None
+     get_source = get_code  # same as get_code
+ 
++    def create_module(self, spec):
++        return self.load_module(spec.name)
++
++    def exec_module(self, module):
++        pass
++
+ _importer = _SixMetaPathImporter(__name__)
+ 
+ 
+@@ -890,12 +906,11 @@ def ensure_binary(s, encoding='utf-8', e
+       - `str` -> encoded to `bytes`
+       - `bytes` -> `bytes`
+     """
++    if isinstance(s, binary_type):
++        return s
+     if isinstance(s, text_type):
+         return s.encode(encoding, errors)
+-    elif isinstance(s, binary_type):
+-        return s
+-    else:
+-        raise TypeError("not expecting type '%s'" % type(s))
++    raise TypeError("not expecting type '%s'" % type(s))
+ 
+ 
+ def ensure_str(s, encoding='utf-8', errors='strict'):
+@@ -909,12 +924,15 @@ def ensure_str(s, encoding='utf-8', erro
+       - `str` -> `str`
+       - `bytes` -> decoded to `str`
+     """
+-    if not isinstance(s, (text_type, binary_type)):
+-        raise TypeError("not expecting type '%s'" % type(s))
++    # Optimization: Fast return for the common case.
++    if type(s) is str:
++        return s
+     if PY2 and isinstance(s, text_type):
+-        s = s.encode(encoding, errors)
++        return s.encode(encoding, errors)
+     elif PY3 and isinstance(s, binary_type):
+-        s = s.decode(encoding, errors)
++        return s.decode(encoding, errors)
++    elif not isinstance(s, (text_type, binary_type)):
++        raise TypeError("not expecting type '%s'" % type(s))
+     return s
+ 
+ 
diff --git a/srcpkgs/qt6-pdf/patches/0106-chromium-system-nodejs.patch b/srcpkgs/qt6-pdf/patches/0106-chromium-system-nodejs.patch
deleted file mode 100644
index 1648f764ea19fe..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0106-chromium-system-nodejs.patch
+++ /dev/null
@@ -1,29 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/node/node.py
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/node/node.py
-@@ -18,25 +18,7 @@ def which(cmd):
-     return None
- 
- def GetBinaryPath():
--  if sys.platform == 'win32':
--    nodejs = which('node.exe')
--    if nodejs:
--      return nodejs
--  else:
--    nodejs = which('nodejs')
--    if nodejs:
--      return nodejs
--    nodejs = which('node')
--    if nodejs:
--      return nodejs
--
--  darwin_name = ('node-darwin-arm64' if platform.machine() == 'arm64' else
--                 'node-darwin-x64')
--  return os_path.join(os_path.dirname(__file__), *{
--    'Darwin': ('mac', darwin_name, 'bin', 'node'),
--    'Linux': ('linux', 'node-linux-x64', 'bin', 'node'),
--    'Windows': ('win', 'node.exe'),
--  }[platform.system()])
-+  return "/usr/bin/node"
- 
- 
- def RunNode(cmd_parts, stdout=None):
diff --git a/srcpkgs/qt6-pdf/patches/0107-chromium-114-maldoca-include.patch b/srcpkgs/qt6-pdf/patches/0107-chromium-114-maldoca-include.patch
new file mode 100644
index 00000000000000..ae92efb49712cf
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0107-chromium-114-maldoca-include.patch
@@ -0,0 +1,20 @@
+From 345c58f1d85286b394c05bb8d871ac8173be90a3 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Fri, 31 Mar 2023 16:26:06 +0000
+Subject: [PATCH] IWYU: add stdint.h for int types in maldoca
+
+---
+ third_party/maldoca/src/maldoca/ole/header.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/src/3rdparty/chromium/third_party/maldoca/src/maldoca/ole/header.h
++++ b/src/3rdparty/chromium/third_party/maldoca/src/maldoca/ole/header.h
+@@ -43,6 +43,8 @@
+ #ifndef MALDOCA_OLE_HEADER_H_
+ #define MALDOCA_OLE_HEADER_H_
+ 
++#include <stdint.h>
++
+ #include "absl/strings/string_view.h"
+ 
+ namespace maldoca {
diff --git a/srcpkgs/qt6-pdf/patches/0108-chromium-115-compiler-SkColor4f.patch b/srcpkgs/qt6-pdf/patches/0108-chromium-115-compiler-SkColor4f.patch
new file mode 100644
index 00000000000000..32e3dfbfcb396b
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0108-chromium-115-compiler-SkColor4f.patch
@@ -0,0 +1,26 @@
+Patch-Source: https://src.fedoraproject.org/rpms/chromium/blob/1f8fd846d2cc72c90c73c9867619f0da43b9c816/f/chromium-115-compiler-SkColor4f.patch
+--- a/src/3rdparty/chromium/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc
++++ b/src/3rdparty/chromium/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc
+@@ -76,6 +76,7 @@ bool ParseCanvasColorString(const String
+ 
+ void CanvasStyle::ApplyToFlags(cc::PaintFlags& flags,
+                                float global_alpha) const {
++  SkColor4f custom_color = SkColor4f{0.0f, 0.0f, 0.0f, global_alpha};
+   switch (type_) {
+     case kColor:
+       ApplyColorToFlags(flags, global_alpha);
+@@ -83,12 +84,12 @@ void CanvasStyle::ApplyToFlags(cc::Paint
+     case kGradient:
+       GetCanvasGradient()->GetGradient()->ApplyToFlags(flags, SkMatrix::I(),
+                                                        ImageDrawOptions());
+-      flags.setColor(SkColor4f{0.0f, 0.0f, 0.0f, global_alpha});
++      flags.setColor(custom_color);
+       break;
+     case kImagePattern:
+       GetCanvasPattern()->GetPattern()->ApplyToFlags(
+           flags, AffineTransformToSkMatrix(GetCanvasPattern()->GetTransform()));
+-      flags.setColor(SkColor4f{0.0f, 0.0f, 0.0f, global_alpha});
++      flags.setColor(custom_color);
+       break;
+     default:
+       NOTREACHED();
diff --git a/srcpkgs/qt6-pdf/patches/0108-chromium-cursed^Uscoped_file.patch b/srcpkgs/qt6-pdf/patches/0108-chromium-cursed^Uscoped_file.patch
deleted file mode 100644
index dd31da9790adce..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0108-chromium-cursed^Uscoped_file.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/files/scoped_file_linux.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/files/scoped_file_linux.cc
-@@ -77,15 +77,3 @@ bool IsFDOwned(int fd) {
- }
- 
- }  // namespace base
--
--extern "C" {
--
--int __close(int);
--
--__attribute__((visibility("default"), noinline)) int close(int fd) {
--  if (base::IsFDOwned(fd) && g_is_ownership_enforced)
--    CrashOnFdOwnershipViolation();
--  return __close(fd);
--}
--
--}  // extern "C"
diff --git a/srcpkgs/qt6-pdf/patches/0110-chromium-117-typename.patch b/srcpkgs/qt6-pdf/patches/0110-chromium-117-typename.patch
new file mode 100644
index 00000000000000..6e4af0c0e074fa
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0110-chromium-117-typename.patch
@@ -0,0 +1,91 @@
+--- a/src/3rdparty/chromium/components/optimization_guide/core/tflite_model_executor.h
++++ b/src/3rdparty/chromium/components/optimization_guide/core/tflite_model_executor.h
+@@ -240,7 +240,7 @@ class TFLiteModelExecutor : public Model
+   void SendForBatchExecution(
+       BatchExecutionCallback callback_on_complete,
+       base::TimeTicks start_time,
+-      ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
++      typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
+       override {
+     DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+@@ -262,7 +262,7 @@ class TFLiteModelExecutor : public Model
+   // Starts the synchronous execution of the model. Returns model outputs.
+   // Model needs to be loaded. Synchronous calls do not load or unload model.
+   std::vector<absl::optional<OutputType>> SendForBatchExecutionSync(
+-      ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
++      typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
+       override {
+     DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+@@ -417,7 +417,7 @@ class TFLiteModelExecutor : public Model
+   // executes it on the model execution thread.
+   void LoadModelFileAndBatchExecute(
+       BatchExecutionCallback callback_on_complete,
+-      ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs) {
++      typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs) {
+     DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ 
+@@ -434,7 +434,7 @@ class TFLiteModelExecutor : public Model
+ 
+   // Batch executes the loaded model for inputs.
+   void BatchExecuteLoadedModel(
+-      ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
++      typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
+       std::vector<absl::optional<OutputType>>* outputs) {
+     DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+@@ -494,7 +494,7 @@ class TFLiteModelExecutor : public Model
+   // Unloads the model if needed.
+   void BatchExecuteLoadedModelAndRunCallback(
+       BatchExecutionCallback callback_on_complete,
+-      ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
++      typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
+       ExecutionStatus execution_status) {
+     DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+--- a/src/3rdparty/chromium/components/supervised_user/core/browser/proto_fetcher.cc
++++ b/src/3rdparty/chromium/components/supervised_user/core/browser/proto_fetcher.cc
+@@ -399,7 +399,7 @@ class RetryingFetcherImpl final : public
+   RetryingFetcherImpl(const RetryingFetcherImpl&) = delete;
+   RetryingFetcherImpl& operator=(const RetryingFetcherImpl&) = delete;
+ 
+-  void Start(ProtoFetcher<Response>::Callback callback) override {
++  void Start(typename ProtoFetcher<Response>::Callback callback) override {
+     callback_ = std::move(callback);
+     Retry();
+   }
+@@ -435,7 +435,7 @@ class RetryingFetcherImpl final : public
+   }
+ 
+   // Client callback.
+-  ProtoFetcher<Response>::Callback callback_;
++  typename ProtoFetcher<Response>::Callback callback_;
+ 
+   // Retry controls.
+   base::OneShotTimer timer_;
+@@ -578,7 +578,7 @@ ParallelFetchManager<Request, Response>:
+ template <typename Request, typename Response>
+ void ParallelFetchManager<Request, Response>::Fetch(
+     const Request& request,
+-    Fetcher::Callback callback) {
++    typename Fetcher::Callback callback) {
+   CHECK(callback) << "Use base::DoNothing() instead of empty callback.";
+   KeyType key = requests_in_flight_.Add(MakeFetcher(request));
+   requests_in_flight_.Lookup(key)->Start(
+--- a/src/3rdparty/chromium/components/supervised_user/core/browser/proto_fetcher.h
++++ b/src/3rdparty/chromium/components/supervised_user/core/browser/proto_fetcher.h
+@@ -165,10 +165,10 @@ class ParallelFetchManager {
+ 
+   // Starts the fetch. Underlying fetcher is stored internally, and will be
+   // cleaned up after finish or when this manager is destroyed.
+-  void Fetch(const Request& request, Fetcher::Callback callback);
++  void Fetch(const Request& request, typename Fetcher::Callback callback);
+ 
+  private:
+-  using KeyType = base::IDMap<std::unique_ptr<Fetcher>>::KeyType;
++  using KeyType = typename base::IDMap<std::unique_ptr<Fetcher>>::KeyType;
+ 
+   // Remove fetcher under key from requests_in_flight_.
+   void Remove(KeyType key);
diff --git a/srcpkgs/qt6-pdf/patches/0111-chromium-cstdint.patch b/srcpkgs/qt6-pdf/patches/0111-chromium-cstdint.patch
deleted file mode 100644
index f5787621b579ce..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0111-chromium-cstdint.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/net/third_party/quiche/src/quiche/http2/adapter/window_manager.h
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/net/third_party/quiche/src/quiche/http2/adapter/window_manager.h
-@@ -3,6 +3,7 @@
- 
- #include <stddef.h>
- 
-+#include <cstdint>
- #include <functional>
- 
- #include "quiche/common/platform/api/quiche_export.h"
diff --git a/srcpkgs/qt6-pdf/patches/0112-chromium-118-missing-header-files.patch b/srcpkgs/qt6-pdf/patches/0112-chromium-118-missing-header-files.patch
new file mode 100644
index 00000000000000..43861ea7321752
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0112-chromium-118-missing-header-files.patch
@@ -0,0 +1,379 @@
+--- a/src/3rdparty/chromium/base/memory/ref_counted.h
++++ b/src/3rdparty/chromium/base/memory/ref_counted.h
+@@ -6,6 +6,7 @@
+ #define BASE_MEMORY_REF_COUNTED_H_
+ 
+ #include <stddef.h>
++#include <limits>
+ 
+ #include <limits>
+ #include <utility>
+--- a/src/3rdparty/chromium/base/check_op.h
++++ b/src/3rdparty/chromium/base/check_op.h
+@@ -5,6 +5,7 @@
+ #ifndef BASE_CHECK_OP_H_
+ #define BASE_CHECK_OP_H_
+ 
++#include <cstdint>
+ #include <cstddef>
+ #include <string>
+ #include <string_view>
+--- a/src/3rdparty/chromium/base/debug/profiler.h
++++ b/src/3rdparty/chromium/base/debug/profiler.h
+@@ -8,6 +8,7 @@
+ #include <stddef.h>
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <string>
+ 
+ #include "base/base_export.h"
+--- a/src/3rdparty/chromium/gpu/config/gpu_feature_info.h
++++ b/src/3rdparty/chromium/gpu/config/gpu_feature_info.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <string>
+ #include <vector>
+ 
+--- a/src/3rdparty/chromium/net/base/net_export.h
++++ b/src/3rdparty/chromium/net/base/net_export.h
+@@ -5,6 +5,8 @@
+ #ifndef NET_BASE_NET_EXPORT_H_
+ #define NET_BASE_NET_EXPORT_H_
+ 
++#include <cstdint>
++
+ // Defines NET_EXPORT so that functionality implemented by the net module can
+ // be exported to consumers, and NET_EXPORT_PRIVATE that allows unit tests to
+ // access features not intended to be used directly by real consumers.
+--- a/src/3rdparty/chromium/sandbox/linux/syscall_broker/broker_file_permission.h
++++ b/src/3rdparty/chromium/sandbox/linux/syscall_broker/broker_file_permission.h
+@@ -5,6 +5,7 @@
+ #ifndef SANDBOX_LINUX_SYSCALL_BROKER_BROKER_FILE_PERMISSION_H_
+ #define SANDBOX_LINUX_SYSCALL_BROKER_BROKER_FILE_PERMISSION_H_
+ 
++#include <cstdint>
+ #include <bitset>
+ #include <cstdint>
+ #include <string>
+--- a/src/3rdparty/chromium/third_party/abseil-cpp/absl/strings/string_view.h
++++ b/src/3rdparty/chromium/third_party/abseil-cpp/absl/strings/string_view.h
+@@ -27,6 +27,7 @@
+ #ifndef ABSL_STRINGS_STRING_VIEW_H_
+ #define ABSL_STRINGS_STRING_VIEW_H_
+ 
++#include <cstdint>
+ #include <algorithm>
+ #include <cassert>
+ #include <cstddef>
+--- a/src/3rdparty/chromium/third_party/angle/include/GLSLANG/ShaderVars.h
++++ b/src/3rdparty/chromium/third_party/angle/include/GLSLANG/ShaderVars.h
+@@ -10,6 +10,7 @@
+ #ifndef GLSLANG_SHADERVARS_H_
+ #define GLSLANG_SHADERVARS_H_
+ 
++#include <cstdint>
+ #include <algorithm>
+ #include <array>
+ #include <cstdint>
+--- a/src/3rdparty/chromium/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h
++++ b/src/3rdparty/chromium/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <array>
+ #include <cstdint>
+ #include <functional>
+--- a/src/3rdparty/chromium/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h
++++ b/src/3rdparty/chromium/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h
+@@ -15,6 +15,7 @@
+ #ifndef SRC_TINT_LANG_SPIRV_READER_AST_PARSER_NAMER_H_
+ #define SRC_TINT_LANG_SPIRV_READER_AST_PARSER_NAMER_H_
+ 
++#include <cstdint>
+ #include <string>
+ #include <unordered_map>
+ #include <vector>
+--- a/src/3rdparty/chromium/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h
++++ b/src/3rdparty/chromium/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <functional>
+ #include <map>
+ #include <set>
+--- a/src/3rdparty/chromium/third_party/swiftshader/src/System/LRUCache.hpp
++++ b/src/3rdparty/chromium/third_party/swiftshader/src/System/LRUCache.hpp
+@@ -17,6 +17,7 @@
+ 
+ #include "System/Debug.hpp"
+ 
++#include <cstdint>
+ #include <cstddef>
+ #include <cstdint>
+ #include <functional>
+--- a/src/3rdparty/chromium/ui/gfx/geometry/linear_gradient.h
++++ b/src/3rdparty/chromium/ui/gfx/geometry/linear_gradient.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <array>
+ #include <cstddef>
+ #include <cstdint>
+--- a/src/3rdparty/chromium/third_party/ruy/src/ruy/profiler/instrumentation.h
++++ b/src/3rdparty/chromium/third_party/ruy/src/ruy/profiler/instrumentation.h
+@@ -17,6 +17,7 @@ limitations under the License.
+ #define RUY_RUY_PROFILER_INSTRUMENTATION_H_
+ 
+ #ifdef RUY_PROFILER
++#include <string>
+ #include <cstdio>
+ #include <mutex>
+ #include <vector>
+--- a/src/3rdparty/chromium/base/containers/flat_map.h
++++ b/src/3rdparty/chromium/base/containers/flat_map.h
+@@ -5,6 +5,7 @@
+ #ifndef BASE_CONTAINERS_FLAT_MAP_H_
+ #define BASE_CONTAINERS_FLAT_MAP_H_
+ 
++#include <cstdint>
+ #include <functional>
+ #include <tuple>
+ #include <type_traits>
+--- a/src/3rdparty/chromium/components/crash/core/app/crash_reporter_client.h
++++ b/src/3rdparty/chromium/components/crash/core/app/crash_reporter_client.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <string>
+ 
+ #include "build/build_config.h"
+--- a/src/3rdparty/chromium/ui/base/prediction/kalman_filter.h
++++ b/src/3rdparty/chromium/ui/base/prediction/kalman_filter.h
+@@ -7,6 +7,8 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
++
+ #include "base/component_export.h"
+ #include "ui/gfx/geometry/matrix3_f.h"
+ 
+--- a/src/3rdparty/chromium/components/password_manager/core/browser/generation/password_generator.h
++++ b/src/3rdparty/chromium/components/password_manager/core/browser/generation/password_generator.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <string>
+ 
+ 
+--- a/src/3rdparty/chromium/components/feature_engagement/internal/event_storage_validator.h
++++ b/src/3rdparty/chromium/components/feature_engagement/internal/event_storage_validator.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <string>
+ 
+ namespace feature_engagement {
+--- a/src/3rdparty/chromium/components/feature_engagement/internal/never_event_storage_validator.h
++++ b/src/3rdparty/chromium/components/feature_engagement/internal/never_event_storage_validator.h
+@@ -5,6 +5,7 @@
+ #ifndef COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_NEVER_EVENT_STORAGE_VALIDATOR_H_
+ #define COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_NEVER_EVENT_STORAGE_VALIDATOR_H_
+ 
++#include <cstdint>
+ #include <string>
+ 
+ #include "components/feature_engagement/internal/event_storage_validator.h"
+--- a/src/3rdparty/chromium/components/autofill/core/browser/autofill_ablation_study.h
++++ b/src/3rdparty/chromium/components/autofill/core/browser/autofill_ablation_study.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <string>
+ 
+ class GURL;
+--- a/src/3rdparty/chromium/components/payments/content/utility/fingerprint_parser.h
++++ b/src/3rdparty/chromium/components/payments/content/utility/fingerprint_parser.h
+@@ -5,6 +5,7 @@
+ #ifndef COMPONENTS_PAYMENTS_CONTENT_UTILITY_FINGERPRINT_PARSER_H_
+ #define COMPONENTS_PAYMENTS_CONTENT_UTILITY_FINGERPRINT_PARSER_H_
+ 
++#include <cstdint>
+ #include <stddef.h>
+ #include <stdint.h>
+ 
+--- a/src/3rdparty/chromium/pdf/document_attachment_info.h
++++ b/src/3rdparty/chromium/pdf/document_attachment_info.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <string>
+ 
+ 
+--- a/src/3rdparty/chromium/third_party/pdfium/constants/annotation_flags.h
++++ b/src/3rdparty/chromium/third_party/pdfium/constants/annotation_flags.h
+@@ -7,6 +7,8 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
++
+ namespace pdfium {
+ namespace annotation_flags {
+ 
+--- a/src/3rdparty/chromium/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
++++ b/src/3rdparty/chromium/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
+@@ -2884,6 +2884,7 @@ static void vma_aligned_free(void* VMA_N
+ 
+ // Define this macro to 1 to enable functions: vmaBuildStatsString, vmaFreeStatsString.
+ #if VMA_STATS_STRING_ENABLED
++#include <stdio.h>
+     static inline void VmaUint32ToStr(char* VMA_NOT_NULL outStr, size_t strLen, uint32_t num)
+     {
+         snprintf(outStr, strLen, "%u", static_cast<unsigned int>(num));
+--- a/src/3rdparty/chromium/gin/time_clamper.h
++++ b/src/3rdparty/chromium/gin/time_clamper.h
+@@ -48,7 +48,7 @@ class GIN_EXPORT TimeClamper {
+     const int64_t micros = now_micros % 1000;
+     // abs() is necessary for devices with times before unix-epoch (most likely
+     // configured incorrectly).
+-    if (abs(micros) + kResolutionMicros < 1000) {
++    if (std::abs(micros) + kResolutionMicros < 1000) {
+       return now_micros / 1000;
+     }
+     return ClampTimeResolution(now_micros) / 1000;
+--- a/src/3rdparty/chromium/chrome/test/chromedriver/chrome/web_view_impl.cc
++++ b/src/3rdparty/chromium/chrome/test/chromedriver/chrome/web_view_impl.cc
+@@ -11,6 +11,7 @@
+ #include <queue>
+ #include <utility>
+ #include <vector>
++#include <cstring>
+ 
+ #include "base/check.h"
+ #include "base/files/file_path.h"
+--- a/src/3rdparty/chromium/skia/ext/skcolorspace_trfn.cc
++++ b/src/3rdparty/chromium/skia/ext/skcolorspace_trfn.cc
+@@ -3,6 +3,7 @@
+ // found in the LICENSE file.
+ 
+ #include "skia/ext/skcolorspace_trfn.h"
++#include <cmath>
+ 
+ #include <cmath>
+ 
+--- a/src/3rdparty/chromium/third_party/webrtc/common_video/h264/sps_parser.h
++++ b/src/3rdparty/chromium/third_party/webrtc/common_video/h264/sps_parser.h
+@@ -11,6 +11,7 @@
+ #ifndef COMMON_VIDEO_H264_SPS_PARSER_H_
+ #define COMMON_VIDEO_H264_SPS_PARSER_H_
+ 
++#include <cstdint>
+ #include "absl/types/optional.h"
+ #include "rtc_base/bitstream_reader.h"
+ 
+--- a/src/3rdparty/chromium/third_party/webrtc/modules/include/module_common_types_public.h
++++ b/src/3rdparty/chromium/third_party/webrtc/modules/include/module_common_types_public.h
+@@ -11,6 +11,7 @@
+ #ifndef MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
+ #define MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
+ 
++#include <cstdint>
+ #include <limits>
+ 
+ #include "absl/types/optional.h"
+--- a/src/3rdparty/chromium/ui/gfx/linux/drm_util_linux.h
++++ b/src/3rdparty/chromium/ui/gfx/linux/drm_util_linux.h
+@@ -9,6 +9,8 @@
+ 
+ #include "ui/gfx/buffer_types.h"
+ 
++#include <cstdint>
++
+ namespace ui {
+ 
+ int GetFourCCFormatFromBufferFormat(gfx::BufferFormat format);
+--- a/src/3rdparty/chromium/third_party/webrtc/audio/utility/channel_mixer.cc
++++ b/src/3rdparty/chromium/third_party/webrtc/audio/utility/channel_mixer.cc
+@@ -8,6 +8,8 @@
+  *  be found in the AUTHORS file in the root of the source tree.
+  */
+ 
++#include <cstring>
++
+ #include "audio/utility/channel_mixer.h"
+ 
+ #include "audio/utility/channel_mixing_matrix.h"
+--- a/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc
++++ b/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc
+@@ -10,6 +10,7 @@
+ 
+ #include "modules/video_coding/utility/ivf_file_reader.h"
+ 
++#include <cstring>
+ #include <string>
+ #include <vector>
+ 
+--- a/src/3rdparty/chromium/third_party/ipcz/src/ipcz/router_link.h
++++ b/src/3rdparty/chromium/third_party/ipcz/src/ipcz/router_link.h
+@@ -5,6 +5,7 @@
+ #ifndef IPCZ_SRC_IPCZ_ROUTER_LINK_H_
+ #define IPCZ_SRC_IPCZ_ROUTER_LINK_H_
+ 
++#include <memory>
+ #include <cstddef>
+ #include <functional>
+ #include <memory>
+--- a/src/3rdparty/chromium/third_party/material_color_utilities/src/cpp/palettes/tones.cc
++++ b/src/3rdparty/chromium/third_party/material_color_utilities/src/cpp/palettes/tones.cc
+@@ -14,6 +14,7 @@
+  * limitations under the License.
+  */
+ 
++#include <cmath>
+ #include "cpp/palettes/tones.h"
+ 
+ #include <cmath>
+--- a/src/3rdparty/chromium/services/device/public/cpp/generic_sensor/sensor_reading.h
++++ b/src/3rdparty/chromium/services/device/public/cpp/generic_sensor/sensor_reading.h
+@@ -8,6 +8,9 @@
+ #include <stddef.h>
+ #include <stdint.h>
+ 
++#include <cstddef>
++#include <cstdint>
++
+ #include <type_traits>
+ 
+ namespace device {
+--- a/src/3rdparty/chromium/components/gwp_asan/client/lightweight_detector.h
++++ b/src/3rdparty/chromium/components/gwp_asan/client/lightweight_detector.h
+@@ -5,6 +5,8 @@
+ #ifndef COMPONENTS_GWP_ASAN_CLIENT_LIGHTWEIGHT_DETECTOR_H_
+ #define COMPONENTS_GWP_ASAN_CLIENT_LIGHTWEIGHT_DETECTOR_H_
+ 
++#include <atomic>
++
+ #include "base/gtest_prod_util.h"
+ #include "components/gwp_asan/client/export.h"
+ #include "components/gwp_asan/common/lightweight_detector_state.h"
diff --git a/srcpkgs/qt6-pdf/patches/0113-chromium-118-no_matching_constructor.patch b/srcpkgs/qt6-pdf/patches/0113-chromium-118-no_matching_constructor.patch
new file mode 100644
index 00000000000000..97926daa8ca0ef
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0113-chromium-118-no_matching_constructor.patch
@@ -0,0 +1,410 @@
+--- a/src/3rdparty/chromium/ui/base/wayland/color_manager_util.h
++++ b/src/3rdparty/chromium/ui/base/wayland/color_manager_util.h
+@@ -52,53 +52,53 @@ constexpr auto kChromaticityMap = base::
+     zcr_color_manager_v1_chromaticity_names,
+     PrimaryVersion>(
+     {{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_525_LINE,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::SMPTE170M,
+-                     kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::SMPTE170M,
++                     kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_625_LINE,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT470BG,
+-                     kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::BT470BG,
++                     kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE170M,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::SMPTE170M,
+-                     kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::SMPTE170M,
++                     kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT709,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT2020,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT2020, kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::BT2020, kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SRGB,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_DISPLAYP3,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::P3, kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::P3, kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_ADOBERGB,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::ADOBE_RGB,
+-                     kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::ADOBE_RGB,
++                     kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::WIDE_GAMUT_COLOR_SPIN,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::BT470M,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::SMPTE240M,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::XYZ_D50,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::SMPTEST428_1,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::SMPTEST431_2,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::FILM,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM_SINCE_VERSION)}});
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM_SINCE_VERSION}}});
+ 
+ // A map from the zcr_color_manager_v1 eotf_names enum values
+ // representing well-known EOTFs, to their equivalent TransferIDs.
+@@ -107,65 +107,65 @@ constexpr auto kEotfMap = base::MakeFixe
+     zcr_color_manager_v1_eotf_names,
+     TransferVersion>({
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
+-     TransferVersion(gfx::ColorSpace::TransferID::LINEAR,
+-                     kDefaultSinceVersion)},
++     TransferVersion{gfx::ColorSpace::TransferID::LINEAR,
++                     kDefaultSinceVersion}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB,
+-     TransferVersion(gfx::ColorSpace::TransferID::SRGB, kDefaultSinceVersion)},
++     TransferVersion{gfx::ColorSpace::TransferID::SRGB, kDefaultSinceVersion}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709,
+-     TransferVersion(gfx::ColorSpace::TransferID::BT709,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::BT709,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2087,
+-     TransferVersion(gfx::ColorSpace::TransferID::GAMMA24,
+-                     kDefaultSinceVersion)},
++     TransferVersion{gfx::ColorSpace::TransferID::GAMMA24,
++                     kDefaultSinceVersion}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_ADOBERGB,
+      // This is ever so slightly inaccurate. The number ought to be
+      // 2.19921875f, not 2.2
+-     TransferVersion(gfx::ColorSpace::TransferID::GAMMA22,
+-                     kDefaultSinceVersion)},
++     TransferVersion{gfx::ColorSpace::TransferID::GAMMA22,
++                     kDefaultSinceVersion}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_PQ,
+-     TransferVersion(gfx::ColorSpace::TransferID::PQ, kDefaultSinceVersion)},
++     TransferVersion{gfx::ColorSpace::TransferID::PQ, kDefaultSinceVersion}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG,
+-     TransferVersion(gfx::ColorSpace::TransferID::HLG,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::HLG,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M,
+-     TransferVersion(gfx::ColorSpace::TransferID::SMPTE170M,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::SMPTE170M,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M,
+-     TransferVersion(gfx::ColorSpace::TransferID::SMPTE240M,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::SMPTE240M,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1,
+-     TransferVersion(
++     TransferVersion{
+          gfx::ColorSpace::TransferID::SMPTEST428_1,
+-         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1_SINCE_VERSION)},
++         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG,
+-     TransferVersion(gfx::ColorSpace::TransferID::LOG,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::LOG,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT,
+-     TransferVersion(gfx::ColorSpace::TransferID::LOG_SQRT,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::LOG_SQRT,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4,
+-     TransferVersion(
++     TransferVersion{
+          gfx::ColorSpace::TransferID::IEC61966_2_4,
+-         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4_SINCE_VERSION)},
++         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG,
+-     TransferVersion(gfx::ColorSpace::TransferID::BT1361_ECG,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::BT1361_ECG,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10,
+-     TransferVersion(gfx::ColorSpace::TransferID::BT2020_10,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::BT2020_10,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12,
+-     TransferVersion(gfx::ColorSpace::TransferID::BT2020_12,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::BT2020_12,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS,
+-     TransferVersion(
++     TransferVersion{
+          gfx::ColorSpace::TransferID::SCRGB_LINEAR_80_NITS,
+-         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS_SINCE_VERSION)},
++         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18,
+-     TransferVersion(gfx::ColorSpace::TransferID::GAMMA18,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::GAMMA18,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28,
+-     TransferVersion(gfx::ColorSpace::TransferID::GAMMA28,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::GAMMA28,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28_SINCE_VERSION}},
+ });
+ 
+ // A map from the SDR zcr_color_manager_v1 eotf_names enum values
+@@ -174,18 +174,18 @@ constexpr auto kEotfMap = base::MakeFixe
+ constexpr auto kTransferMap =
+     base::MakeFixedFlatMap<zcr_color_manager_v1_eotf_names, TransferFnVersion>({
+         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
+-         TransferFnVersion(SkNamedTransferFn::kLinear, kDefaultSinceVersion)},
++         TransferFnVersion{SkNamedTransferFn::kLinear, kDefaultSinceVersion}},
+         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB,
+-         TransferFnVersion(SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion)},
++         TransferFnVersion{SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion}},
+         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709,
+-         TransferFnVersion(
++         TransferFnVersion{
+              SkNamedTransferFnExt::kRec709,
+-             ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION)},
++             ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION}},
+         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2087,
+-         TransferFnVersion(gamma24, kDefaultSinceVersion)},
++         TransferFnVersion{gamma24, kDefaultSinceVersion}},
+         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_ADOBERGB,
+-         TransferFnVersion(SkNamedTransferFnExt::kA98RGB,
+-                           kDefaultSinceVersion)},
++         TransferFnVersion{SkNamedTransferFnExt::kA98RGB,
++                           kDefaultSinceVersion}},
+     });
+ 
+ // A map from the HDR zcr_color_manager_v1 eotf_names enum values
+@@ -194,68 +194,68 @@ constexpr auto kTransferMap =
+ constexpr auto kHDRTransferMap =
+     base::MakeFixedFlatMap<zcr_color_manager_v1_eotf_names, TransferFnVersion>(
+         {{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
+-          TransferFnVersion(SkNamedTransferFn::kLinear, kDefaultSinceVersion)},
++          TransferFnVersion{SkNamedTransferFn::kLinear, kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB,
+-          TransferFnVersion(SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion)},
++          TransferFnVersion{SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_PQ,
+-          TransferFnVersion(SkNamedTransferFn::kPQ, kDefaultSinceVersion)},
++          TransferFnVersion{SkNamedTransferFn::kPQ, kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG,
+-          TransferFnVersion(SkNamedTransferFn::kHLG,
+-                            ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION)},
++          TransferFnVersion{SkNamedTransferFn::kHLG,
++                            ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION}},
+          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10,
+-          TransferFnVersion(
++          TransferFnVersion{
+               SkNamedTransferFnExt::kSRGBExtended1023Over510,
+-              ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10_SINCE_VERSION)}});
++              ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10_SINCE_VERSION}}});
+ 
+ // A map from zcr_color_manager_v1 matrix_names enum values to
+ // gfx::ColorSpace::MatrixIDs.
+ constexpr auto kMatrixMap =
+     base::MakeFixedFlatMap<zcr_color_manager_v1_matrix_names, MatrixVersion>(
+         {{ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_RGB,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::RGB, kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::RGB, kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT709,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::BT709,
+-                        kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::BT709,
++                        kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG,
+-          MatrixVersion(
++          MatrixVersion{
+               gfx::ColorSpace::MatrixID::BT470BG,
+-              ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG_SINCE_VERSION)},
++              ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG_SINCE_VERSION}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT2020_NCL,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::BT2020_NCL,
+-                        kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::BT2020_NCL,
++                        kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT2020_CL,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::BT2020_CL,
+-                        kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::BT2020_CL,
++                        kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_FCC,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::FCC, kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::FCC, kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::YCOCG,
+-                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG_SINCE_VERSION)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::YCOCG,
++                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG_SINCE_VERSION}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::YDZDX,
+-                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX_SINCE_VERSION)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::YDZDX,
++                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX_SINCE_VERSION}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::GBR,
+-                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR_SINCE_VERSION)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::GBR,
++                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR_SINCE_VERSION}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_SMPTE170M,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::SMPTE170M,
+-                        kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::SMPTE170M,
++                        kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_SMPTE240M,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::SMPTE240M,
+-                        kDefaultSinceVersion)}});
++          MatrixVersion{gfx::ColorSpace::MatrixID::SMPTE240M,
++                        kDefaultSinceVersion}}});
+ 
+ // A map from zcr_color_manager_v1 range_names enum values to
+ // gfx::ColorSpace::RangeIDs.
+ constexpr auto kRangeMap =
+     base::MakeFixedFlatMap<zcr_color_manager_v1_range_names, RangeVersion>(
+         {{ZCR_COLOR_MANAGER_V1_RANGE_NAMES_LIMITED,
+-          RangeVersion(gfx::ColorSpace::RangeID::LIMITED,
+-                       kDefaultSinceVersion)},
++          RangeVersion{gfx::ColorSpace::RangeID::LIMITED,
++                       kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_RANGE_NAMES_FULL,
+-          RangeVersion(gfx::ColorSpace::RangeID::FULL, kDefaultSinceVersion)},
++          RangeVersion{gfx::ColorSpace::RangeID::FULL, kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_RANGE_NAMES_DERIVED,
+-          RangeVersion(gfx::ColorSpace::RangeID::DERIVED,
+-                       kDefaultSinceVersion)}});
++          RangeVersion{gfx::ColorSpace::RangeID::DERIVED,
++                       kDefaultSinceVersion}}});
+ 
+ zcr_color_manager_v1_chromaticity_names ToColorManagerChromaticity(
+     gfx::ColorSpace::PrimaryID primaryID,
+--- a/src/3rdparty/chromium/chrome/test/chromedriver/capabilities.cc
++++ b/src/3rdparty/chromium/chrome/test/chromedriver/capabilities.cc
+@@ -346,7 +346,7 @@ Status ParseMobileEmulation(const base::
+                         "'version' field of type string");
+         }
+ 
+-        brands.emplace_back(*brand, *version);
++        brands.emplace_back() = {*brand, *version};
+       }
+ 
+       client_hints.brands = std::move(brands);
+@@ -384,7 +384,7 @@ Status ParseMobileEmulation(const base::
+                         "a 'version' field of type string");
+         }
+ 
+-        full_version_list.emplace_back(*brand, *version);
++        full_version_list.emplace_back() = {*brand, *version};
+       }
+ 
+       client_hints.full_version_list = std::move(full_version_list);
+--- a/src/3rdparty/chromium/base/trace_event/trace_log.cc
++++ b/src/3rdparty/chromium/base/trace_event/trace_log.cc
+@@ -2190,8 +2190,8 @@ void TraceLog::SetTraceBufferForTesting(
+ #if BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY)
+ void TraceLog::OnSetup(const perfetto::DataSourceBase::SetupArgs& args) {
+   AutoLock lock(track_event_lock_);
+-  track_event_sessions_.emplace_back(args.internal_instance_index, *args.config,
+-                                     args.backend_type);
++  track_event_sessions_.emplace_back() = {args.internal_instance_index, *args.config,
++                                     args.backend_type};
+ }
+ 
+ void TraceLog::OnStart(const perfetto::DataSourceBase::StartArgs&) {
+--- a/src/3rdparty/chromium/ui/gtk/gtk_ui.cc
++++ b/src/3rdparty/chromium/ui/gtk/gtk_ui.cc
+@@ -955,11 +955,11 @@ ui::DisplayConfig GtkUi::GetDisplayConfi
+     GdkRectangle geometry;
+     gdk_monitor_get_geometry(monitor, &geometry);
+     int monitor_scale = std::max(1, gdk_monitor_get_scale_factor(monitor));
+-    config.display_geometries.emplace_back(
++    config.display_geometries.emplace_back() = {
+         gfx::Rect(monitor_scale * geometry.x, monitor_scale * geometry.y,
+                   monitor_scale * geometry.width,
+                   monitor_scale * geometry.height),
+-        monitor_scale * font_scale);
++        static_cast<float>(monitor_scale * font_scale)};
+   }
+   return config;
+ }
+--- a/src/3rdparty/chromium/components/autofill/core/browser/contact_info_sync_util.cc
++++ b/src/3rdparty/chromium/components/autofill/core/browser/contact_info_sync_util.cc
+@@ -174,9 +174,9 @@ class ContactInfoProfileSetter {
+     CHECK(observations.empty());
+     for (const sync_pb::ContactInfoSpecifics::Observation& proto_observation :
+          proto_observations) {
+-      observations.emplace_back(proto_observation.type(),
++      observations.emplace_back() = {static_cast<unsigned char>(proto_observation.type()),
+                                 ProfileTokenQuality::FormSignatureHash(
+-                                    proto_observation.form_hash()));
++                                    proto_observation.form_hash())};
+     }
+   }
+ 
+--- a/src/3rdparty/chromium/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc
++++ b/src/3rdparty/chromium/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc
+@@ -553,11 +553,11 @@ ServerCvc AutofillWalletCvcStructDataFro
+   base::StringToInt64(wallet_credential_specifics.instrument_id(),
+                       &instrument_id);
+ 
+-  return ServerCvc(
++  return ServerCvc{
+       instrument_id, base::UTF8ToUTF16(wallet_credential_specifics.cvc()),
+       base::Time::UnixEpoch() +
+           base::Milliseconds(wallet_credential_specifics
+-                                 .last_updated_time_unix_epoch_millis()));
++                                 .last_updated_time_unix_epoch_millis())};
+ }
+ 
+ VirtualCardUsageData VirtualCardUsageDataFromUsageSpecifics(
+--- a/src/3rdparty/chromium/chrome/test/chromedriver/capabilities.cc
++++ b/src/3rdparty/chromium/chrome/test/chromedriver/capabilities.cc
+@@ -346,7 +346,7 @@ Status ParseMobileEmulation(const base::
+                         "'version' field of type string");
+         }
+ 
+-        brands.emplace_back() = {*brand, *version};
++        brands.emplace_back(*brand, *version);
+       }
+ 
+       client_hints.brands = std::move(brands);
+@@ -384,7 +384,7 @@ Status ParseMobileEmulation(const base::
+                         "a 'version' field of type string");
+         }
+ 
+-        full_version_list.emplace_back() = {*brand, *version};
++        full_version_list.emplace_back(*brand, *version);
+       }
+ 
+       client_hints.full_version_list = std::move(full_version_list);
diff --git a/srcpkgs/qt6-pdf/patches/0114-chromium-118-python-3.12-deprecated.patch b/srcpkgs/qt6-pdf/patches/0114-chromium-118-python-3.12-deprecated.patch
new file mode 100644
index 00000000000000..1b71a5a0ad023c
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0114-chromium-118-python-3.12-deprecated.patch
@@ -0,0 +1,98 @@
+--- a/src/3rdparty/chromium/base/write_build_date_header.py
++++ b/src/3rdparty/chromium/base/write_build_date_header.py
+@@ -17,7 +17,7 @@ def main():
+   args = argument_parser.parse_args()
+ 
+   date_val = int(args.timestamp)
+-  date = datetime.datetime.utcfromtimestamp(date_val)
++  date =  datetime.datetime.fromtimestamp(date_val, datetime.timezone.utc)
+   output = ('// Generated by //base/write_build_date_header.py\n'
+             '#ifndef BASE_GENERATED_BUILD_DATE_TIMESTAMP \n'
+             f'#define BASE_GENERATED_BUILD_DATE_TIMESTAMP {date_val}'
+--- a/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py
++++ b/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py
+@@ -40,6 +40,12 @@ class GoogleProtobufModuleImporter:
+         return filepath
+     return None
+ 
++  def load_source(name: str, path: str) -> types.ModuleType:
++    spec = importlib.util.spec_from_file_location(name, path)
++    module = importlib.util.module_from_spec(spec)
++    spec.loader.exec_module(module)
++    return module
++
+   def _module_exists(self, fullname):
+     return self._fullname_to_filepath(fullname) is not None
+ 
+--- a/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py
++++ b/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py
+@@ -18,7 +18,7 @@ class HTMLGenerationController(object):
+ 
+   def GetHTMLForInlineStylesheet(self, contents):
+     if self.current_module is None:
+-      if re.search('url\(.+\)', contents):
++      if re.search(r'url\(.+\)', contents):
+         raise Exception(
+             'Default HTMLGenerationController cannot handle inline style urls')
+       return contents
+--- a/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py
++++ b/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py
+@@ -4,4 +4,4 @@
+ 
+ 
+ def EscapeJSIfNeeded(js):
+-  return js.replace('</script>', '<\/script>')
++  return js.replace(r'</script>', r'<\/script>')
+--- a/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py
++++ b/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py
+@@ -293,6 +293,6 @@ class HTMLModuleParser():
+       html = ''
+     else:
+       if html.find('< /script>') != -1:
+-        raise Exception('Escape script tags with <\/script>')
++        raise Exception(r'Escape script tags with <\/script>')
+ 
+     return HTMLModuleParserResults(html)
+--- a/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py
++++ b/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py
+@@ -60,7 +60,7 @@ class ParsedStyleSheet(object):
+       return 'url(data:image/%s;base64,%s)' % (ext[1:], data.decode('utf-8'))
+ 
+     # I'm assuming we only have url()'s associated with images
+-    return re.sub('url\((?P<quote>"|\'|)(?P<url>[^"\'()]*)(?P=quote)\)',
++    return re.sub(r'url\((?P<quote>"|\'|)(?P<url>[^"\'()]*)(?P=quote)\)',
+                   InlineUrl, self.contents)
+ 
+   def AppendDirectlyDependentFilenamesTo(self, dependent_filenames):
+@@ -72,7 +72,7 @@ class ParsedStyleSheet(object):
+       raise Exception('@imports are not supported')
+ 
+     matches = re.findall(
+-        'url\((?:["|\']?)([^"\'()]*)(?:["|\']?)\)',
++        r'url\((?:["|\']?)([^"\'()]*)(?:["|\']?)\)',
+         self.contents)
+ 
+     def resolve_url(url):
+--- a/src/3rdparty/chromium/third_party/dawn/generator/generator_lib.py
++++ b/src/3rdparty/chromium/third_party/dawn/generator/generator_lib.py
+@@ -119,8 +119,8 @@ class _PreprocessingLoader(jinja2.BaseLo
+             source = self.preprocess(f.read())
+         return source, path, lambda: mtime == os.path.getmtime(path)
+ 
+-    blockstart = re.compile('{%-?\s*(if|elif|else|for|block|macro)[^}]*%}')
+-    blockend = re.compile('{%-?\s*(end(if|for|block|macro)|elif|else)[^}]*%}')
++    blockstart = re.compile(r'{%-?\s*(if|elif|else|for|block|macro)[^}]*%}')
++    blockend = re.compile(r'{%-?\s*(end(if|for|block|macro)|elif|else)[^}]*%}')
+ 
+     def preprocess(self, source):
+         lines = source.split('\n')
+--- a/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py
++++ b/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py
+@@ -16,6 +16,7 @@ import re
+ import subprocess
+ import sys
+ import traceback
++import types
+ 
+ 
+ class GoogleProtobufModuleImporter:
diff --git a/srcpkgs/qt6-pdf/patches/0116-chromium-118-workaround_clang_bug-structured_binding.patch b/srcpkgs/qt6-pdf/patches/0116-chromium-118-workaround_clang_bug-structured_binding.patch
new file mode 100644
index 00000000000000..38aa477193a5ab
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0116-chromium-118-workaround_clang_bug-structured_binding.patch
@@ -0,0 +1,25 @@
+--- a/src/3rdparty/chromium/media/base/cdm_promise_adapter.cc
++++ b/src/3rdparty/chromium/media/base/cdm_promise_adapter.cc
+@@ -94,7 +94,9 @@ void CdmPromiseAdapter::RejectPromise(ui
+ void CdmPromiseAdapter::Clear(ClearReason reason) {
+   // Reject all outstanding promises.
+   DCHECK(thread_checker_.CalledOnValidThread());
+-  for (auto& [promise_id, promise] : promises_) {
++  for (auto& [p_i, p_e] : promises_) {
++    auto& promise_id = p_i;
++    auto& promise = p_e;
+     TRACE_EVENT_NESTABLE_ASYNC_END1(
+         "media", "CdmPromise", TRACE_ID_WITH_SCOPE("CdmPromise", promise_id),
+         "status", "cleared");
+--- a/src/3rdparty/chromium/content/browser/service_worker/service_worker_context_wrapper.cc
++++ b/src/3rdparty/chromium/content/browser/service_worker/service_worker_context_wrapper.cc
+@@ -1409,7 +1409,8 @@ void ServiceWorkerContextWrapper::MaybeP
+     return;
+   }
+ 
+-  auto [document_url, key, callback] = std::move(*request);
++  auto [d_u, key, callback] = std::move(*request);
++  auto document_url = d_u;
+ 
+   DCHECK(document_url.is_valid());
+   TRACE_EVENT1("ServiceWorker",
diff --git a/srcpkgs/qt6-pdf/patches/0117-chromium-i686-vaapi-fpermissive.patch b/srcpkgs/qt6-pdf/patches/0117-chromium-i686-vaapi-fpermissive.patch
new file mode 100644
index 00000000000000..ad2102d650cc6d
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0117-chromium-i686-vaapi-fpermissive.patch
@@ -0,0 +1,23 @@
+--- a/src/3rdparty/chromium/media/gpu/vaapi/BUILD.gn
++++ b/src/3rdparty/chromium/media/gpu/vaapi/BUILD.gn
+@@ -13,6 +13,12 @@ import("//tools/generate_stubs/rules.gni
+ assert(is_linux || is_chromeos)
+ assert(use_vaapi)
+ 
++config("vaapi_permissive") {
++  if (target_cpu == "x86") {
++    cflags = [ "-fpermissive" ]
++  }
++}
++
+ generate_stubs("libva_stubs") {
+   extra_header = "va_stub_header.fragment"
+   sigs = [ "va.sigs" ]
+@@ -81,6 +87,7 @@ source_set("vaapi") {
+   configs += [
+     "//build/config/linux/libva",
+     "//third_party/libvpx:libvpx_config",
++    ":vaapi_permissive",
+   ]
+ 
+   deps = [
diff --git a/srcpkgs/qt6-pdf/patches/0117-chromium-musl-resolver.patch b/srcpkgs/qt6-pdf/patches/0117-chromium-musl-resolver.patch
deleted file mode 100644
index 12d1f81833cbad..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0117-chromium-musl-resolver.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-diff --git a/src/3rdparty/chromium/net/dns/dns_reloader.cc b/src/3rdparty/chromium/net/dns/dns_reloader.cc
-index 363eb14dc..3a86c12ee 100644
---- a/src/3rdparty/chromium/net/dns/dns_reloader.cc
-+++ b/src/3rdparty/chromium/net/dns/dns_reloader.cc
-@@ -8,7 +8,7 @@
- 
- // If we're not on a POSIX system, it's not even safe to try to include resolv.h
- // - there's not guarantee it exists at all. :(
--#if BUILDFLAG(IS_POSIX)
-+#if defined(__GLIBC__)
- 
- #include <resolv.h>
- 
-diff --git a/src/3rdparty/chromium/net/dns/host_resolver_system_task.cc b/src/3rdparty/chromium/net/dns/host_resolver_system_task.cc
-index d8142e8da..f2461b877 100644
---- a/src/3rdparty/chromium/net/dns/host_resolver_system_task.cc
-+++ b/src/3rdparty/chromium/net/dns/host_resolver_system_task.cc
-@@ -351,8 +351,9 @@ void HostResolverSystemTask::OnLookupComplete(const uint32_t attempt_number,
- }
- 
- void EnsureSystemHostResolverCallReady() {
-+#if defined(__GLIBC__)
-   EnsureDnsReloaderInit();
--#if BUILDFLAG(IS_WIN)
-+#elif BUILDFLAG(IS_WIN)
-   EnsureWinsockInit();
- #endif
- }
-@@ -434,7 +435,9 @@ int SystemHostResolverCall(const std::string& host,
-   // current process during that time.
-   base::ScopedBlockingCall scoped_blocking_call(FROM_HERE,
-                                                 base::BlockingType::WILL_BLOCK);
-+#if defined(__GLIBC__)
-   DnsReloaderMaybeReload();
-+#endif
- 
-   auto [ai, err, os_error] = AddressInfo::Get(host, hints, nullptr, network);
-   bool should_retry = false;
-diff --git a/src/3rdparty/chromium/net/dns/public/scoped_res_state.cc b/src/3rdparty/chromium/net/dns/public/scoped_res_state.cc
-index 2743697bf..36dc8adbf 100644
---- a/src/3rdparty/chromium/net/dns/public/scoped_res_state.cc
-+++ b/src/3rdparty/chromium/net/dns/public/scoped_res_state.cc
-@@ -13,7 +13,7 @@
- namespace net {
- 
- ScopedResState::ScopedResState() {
--#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_FUCHSIA)
-+#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_FUCHSIA) || (BUILDFLAG(IS_LINUX) && !defined(__GLIBC__))
-   // Note: res_ninit in glibc always returns 0 and sets RES_INIT.
-   // res_init behaves the same way.
-   memset(&_res, 0, sizeof(_res));
-@@ -25,7 +25,7 @@ ScopedResState::ScopedResState() {
- }
- 
- ScopedResState::~ScopedResState() {
--#if !BUILDFLAG(IS_OPENBSD) && !BUILDFLAG(IS_FUCHSIA)
-+#if !BUILDFLAG(IS_OPENBSD) && !BUILDFLAG(IS_FUCHSIA) && !(BUILDFLAG(IS_LINUX) && !defined(__GLIBC__))
- 
-   // Prefer res_ndestroy where available.
- #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD)
diff --git a/srcpkgs/qt6-pdf/patches/0105-chromium-revert-drop-of-system-java.patch b/srcpkgs/qt6-pdf/patches/0118-chromium-revert-drop-of-system-java.patch
similarity index 76%
rename from srcpkgs/qt6-pdf/patches/0105-chromium-revert-drop-of-system-java.patch
rename to srcpkgs/qt6-pdf/patches/0118-chromium-revert-drop-of-system-java.patch
index d6abf7adcabcd6..44f3aa8fae5e94 100644
--- a/srcpkgs/qt6-pdf/patches/0105-chromium-revert-drop-of-system-java.patch
+++ b/srcpkgs/qt6-pdf/patches/0118-chromium-revert-drop-of-system-java.patch
@@ -1,6 +1,6 @@
 This was dropped for some reason in 6951c37cecd05979b232a39e5c10e6346a0f74ef
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/closure_compiler/compiler.py
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/closure_compiler/compiler.py
+--- a/src/3rdparty/chromium/third_party/closure_compiler/compiler.py
++++ b/src/3rdparty/chromium/third_party/closure_compiler/compiler.py
 @@ -13,8 +13,9 @@ import subprocess
  
  
diff --git a/srcpkgs/qt6-pdf/patches/0119-chromium-system-nodejs.patch b/srcpkgs/qt6-pdf/patches/0119-chromium-system-nodejs.patch
new file mode 100644
index 00000000000000..224d539e6f59ef
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0119-chromium-system-nodejs.patch
@@ -0,0 +1,20 @@
+--- a/src/3rdparty/chromium/third_party/node/node.py
++++ b/src/3rdparty/chromium/third_party/node/node.py
+@@ -32,11 +32,12 @@ def GetBinaryPath():
+ 
+   darwin_name = ('node-darwin-arm64' if platform.machine() == 'arm64' else
+                  'node-darwin-x64')
+-  return os_path.join(os_path.dirname(__file__), *{
+-    'Darwin': ('mac', darwin_name, 'bin', 'node'),
+-    'Linux': ('linux', 'node-linux-x64', 'bin', 'node'),
+-    'Windows': ('win', 'node.exe'),
+-  }[platform.system()])
++  #return os_path.join(os_path.dirname(__file__), *{
++  #  'Darwin': ('mac', darwin_name, 'bin', 'node'),
++  #  'Linux': ('linux', 'node-linux-x64', 'bin', 'node'),
++  #  'Windows': ('win', 'node.exe'),
++  #}[platform.system()])
++  return "/usr/bin/node"
+ 
+ 
+ def RunNode(cmd_parts, stdout=None):
diff --git a/srcpkgs/qt6-pdf/patches/0107-chromium-cross-build.patch b/srcpkgs/qt6-pdf/patches/0120-cross-build.patch
similarity index 72%
rename from srcpkgs/qt6-pdf/patches/0107-chromium-cross-build.patch
rename to srcpkgs/qt6-pdf/patches/0120-cross-build.patch
index 7fbfabcd79b79e..c533e500a71902 100644
--- a/srcpkgs/qt6-pdf/patches/0107-chromium-cross-build.patch
+++ b/srcpkgs/qt6-pdf/patches/0120-cross-build.patch
@@ -1,6 +1,6 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/build/config/compiler/BUILD.gn
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/build/config/compiler/BUILD.gn
-@@ -58,6 +58,10 @@ if (!is_clang) {
+--- a/src/3rdparty/chromium/build/config/compiler/BUILD.gn
++++ b/src/3rdparty/chromium/build/config/compiler/BUILD.gn
+@@ -59,6 +59,10 @@ if (!is_clang) {
  }
  
  declare_args() {
@@ -11,7 +11,7 @@
    # Normally, Android builds are lightly optimized, even for debug builds, to
    # keep binary size down. Setting this flag to true disables such optimization
    android_full_debug = false
-@@ -1003,8 +1003,13 @@
+@@ -1190,8 +1194,13 @@ config("compiler_cpu_abi") {
      } else if (current_cpu == "arm64") {
        if (is_clang && !is_android && !is_nacl && !is_fuchsia &&
            !(is_chromeos_lacros && is_chromeos_device)) {
@@ -25,10 +25,10 @@
 +          ldflags += [ "--target=aarch64-linux-gnu" ]
 +        }
        }
-       if (is_android) {
-         # Outline atomics crash on Exynos 9810. http://crbug.com/1272795
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/build/toolchain/linux/unbundle/BUILD.gn
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/build/toolchain/linux/unbundle/BUILD.gn
+     } else if (current_cpu == "mipsel" && !is_nacl) {
+       ldflags += [ "-Wl,--hash-style=sysv" ]
+--- a/src/3rdparty/chromium/build/toolchain/linux/unbundle/BUILD.gn
++++ b/src/3rdparty/chromium/build/toolchain/linux/unbundle/BUILD.gn
 @@ -39,3 +39,22 @@ gcc_toolchain("host") {
      current_os = current_os
    }
@@ -52,8 +52,8 @@
 +    v8_current_cpu = target_cpu
 +  }
 +}
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/build/config/linux/pkg_config.gni
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/build/config/linux/pkg_config.gni
+--- a/src/3rdparty/chromium/build/config/linux/pkg_config.gni
++++ b/src/3rdparty/chromium/build/config/linux/pkg_config.gni
 @@ -92,7 +92,7 @@ template("pkg_config") {
    assert(defined(invoker.packages),
           "Variable |packages| must be defined to be a list in pkg_config.")
diff --git a/srcpkgs/qt6-pdf/patches/0121-fc-cache-version.patch b/srcpkgs/qt6-pdf/patches/0121-fc-cache-version.patch
new file mode 100644
index 00000000000000..d8226f0b063226
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0121-fc-cache-version.patch
@@ -0,0 +1,13 @@
+instead of hardcoding the version, use the defined macro.
+--
+--- a/src/3rdparty/chromium/third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc
++++ b/src/3rdparty/chromium/third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc
+@@ -56,7 +56,7 @@ int main() {
+   FcFini();
+ 
+   // Check existence of intended fontconfig cache file.
+-  auto cache = fontconfig_caches + "/" + kCacheKey + "-le64.cache-9";
++  auto cache = fontconfig_caches + "/" + kCacheKey + "-le64.cache-" + FC_CACHE_VERSION;
+   bool cache_exists = access(cache.c_str(), F_OK) == 0;
+   return !cache_exists;
+ }
diff --git a/srcpkgs/qt6-pdf/patches/0109-chromium-aarch64-musl-memory-tagging.patch b/srcpkgs/qt6-pdf/patches/0122-fix-aarch64-musl-memory-tagging-macros.patch
similarity index 73%
rename from srcpkgs/qt6-pdf/patches/0109-chromium-aarch64-musl-memory-tagging.patch
rename to srcpkgs/qt6-pdf/patches/0122-fix-aarch64-musl-memory-tagging-macros.patch
index 0ff2a2a51aaaa8..f2d6541b26f4fc 100644
--- a/srcpkgs/qt6-pdf/patches/0109-chromium-aarch64-musl-memory-tagging.patch
+++ b/srcpkgs/qt6-pdf/patches/0122-fix-aarch64-musl-memory-tagging-macros.patch
@@ -1,6 +1,6 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/allocator/partition_allocator/tagging.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/allocator/partition_allocator/tagging.cc
-@@ -28,13 +28,25 @@
+--- a/src/3rdparty/chromium/base/allocator/partition_allocator/tagging.cc
++++ b/src/3rdparty/chromium/base/allocator/partition_allocator/tagging.cc
+@@ -29,13 +29,25 @@
  #endif
  #endif
  
@@ -25,5 +25,5 @@
 +#endif
 +#ifndef PR_MTE_TAG_MASK
  #define PR_MTE_TAG_MASK (0xffffUL << PR_MTE_TAG_SHIFT)
- #endif
+ #define HWCAP2_MTE (1 << 18)
  #endif
diff --git a/srcpkgs/qt6-pdf/patches/0123-fix-argument_spec-isnan-isinf.patch b/srcpkgs/qt6-pdf/patches/0123-fix-argument_spec-isnan-isinf.patch
new file mode 100644
index 00000000000000..d33de24fafb8e9
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0123-fix-argument_spec-isnan-isinf.patch
@@ -0,0 +1,11 @@
+--- a/src/3rdparty/chromium/extensions/renderer/bindings/argument_spec.cc
++++ b/src/3rdparty/chromium/extensions/renderer/bindings/argument_spec.cc
+@@ -2,6 +2,8 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+ 
++#include <cmath>
++
+ #include "extensions/renderer/bindings/argument_spec.h"
+ 
+ #include <cmath>
diff --git a/srcpkgs/qt6-pdf/patches/0124-fix-constexpr-narrowing.patch b/srcpkgs/qt6-pdf/patches/0124-fix-constexpr-narrowing.patch
new file mode 100644
index 00000000000000..f3e6cf051465ac
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0124-fix-constexpr-narrowing.patch
@@ -0,0 +1,21 @@
+--- a/src/3rdparty/chromium/third_party/blink/renderer/platform/media/web_media_player_impl.cc
++++ b/src/3rdparty/chromium/third_party/blink/renderer/platform/media/web_media_player_impl.cc
+@@ -3732,15 +3732,15 @@ void WebMediaPlayerImpl::WriteSplitHisto
+     const T&... values) {
+   std::string strkey = std::string(key);
+ 
+-  if constexpr (Flags & kEncrypted) {
++  if constexpr (Flags & kEncrypted != 0) {
+     if (is_encrypted_)
+       UmaFunction(strkey + ".EME", values...);
+   }
+ 
+-  if constexpr (Flags & kTotal)
++  if constexpr (Flags & kTotal != 0)
+     UmaFunction(strkey + ".All", values...);
+ 
+-  if constexpr (Flags & kPlaybackType) {
++  if constexpr (Flags & kPlaybackType != 0) {
+     auto demuxer_type = GetDemuxerType();
+     if (!demuxer_type.has_value())
+       return;
diff --git a/srcpkgs/qt6-pdf/patches/0125-fix-dawn-platform.patch b/srcpkgs/qt6-pdf/patches/0125-fix-dawn-platform.patch
new file mode 100644
index 00000000000000..85e427bbe68255
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0125-fix-dawn-platform.patch
@@ -0,0 +1,55 @@
+From f815e833c946a59620a2ca9df37a1da746f61460 Mon Sep 17 00:00:00 2001
+From: q66 <daniel@octaforge.org>
+Date: Sat, 1 Oct 2022 00:21:09 +0000
+Subject: [PATCH] fix dawn build for ppc64
+
+---
+ third_party/dawn/src/dawn/common/Assert.cpp |  4 ++--
+ third_party/dawn/src/dawn/common/Platform.h | 10 +++++-----
+ 2 files changed, 7 insertions(+), 7 deletions(-)
+
+--- a/src/3rdparty/chromium/third_party/dawn/src/dawn/common/Assert.cpp
++++ b/src/3rdparty/chromium/third_party/dawn/src/dawn/common/Assert.cpp
+@@ -39,9 +39,9 @@ void BreakPoint() {
+     __asm__ __volatile__("ebreak");
+ #elif DAWN_PLATFORM_IS(MIPS)
+     __asm__ __volatile__("break");
+-#elif DAWN_PLATFORM_IS(S390) || DAWN_PLATFORM_IS_(S390X)
++#elif DAWN_PLATFORM_IS(S390) || DAWN_PLATFORM_IS(S390X)
+     __asm__ __volatile__(".word 0x0001");
+-#elif DAWN_PLATFORM_IS(PPC) || DAWN_PLATFORM_IS_(PPC64)
++#elif DAWN_PLATFORM_IS(PPC) || DAWN_PLATFORM_IS(PPC64)
+     __asm__ __volatile__("twge 2,2");
+ #else
+ #error "Unsupported platform"
+--- a/src/3rdparty/chromium/third_party/dawn/src/dawn/common/Platform.h
++++ b/src/3rdparty/chromium/third_party/dawn/src/dawn/common/Platform.h
+@@ -140,15 +140,15 @@
+ #define DAWN_PLATFORM_IS_MIPS64 1
+ #endif
+ 
+-#elif defiend(__s390__)
++#elif defined(__s390__)
+ #define DAWN_PLATFORM_IS_S390 1
+-#elif defiend(__s390x__)
++#elif defined(__s390x__)
+ #define DAWN_PLATFORM_IS_S390X 1
+ 
+-#elif defined(__PPC__)
+-#define DAWN_PLATFORM_IS_PPC 1
+ #elif defined(__PPC64__)
+ #define DAWN_PLATFORM_IS_PPC64 1
++#elif defined(__PPC__)
++#define DAWN_PLATFORM_IS_PPC 1
+ 
+ #else
+ #error "Unsupported platform."
+@@ -166,7 +166,7 @@
+ static_assert(sizeof(sizeof(char)) == 8, "Expect sizeof(size_t) == 8");
+ #elif defined(DAWN_PLATFORM_IS_I386) || defined(DAWN_PLATFORM_IS_ARM32) ||   \
+     defined(DAWN_PLATFORM_IS_RISCV32) || defined(DAWN_PLATFORM_IS_MIPS32) || \
+-    defined(DAWN_PLATFORM_IS_S390) || defined(DAWN_PLATFORM_IS_PPC32) ||     \
++    defined(DAWN_PLATFORM_IS_S390) || defined(DAWN_PLATFORM_IS_PPC) ||     \
+     defined(DAWN_PLATFORM_IS_EMSCRIPTEN) || defined(DAWN_PLATFORM_IS_LOONGARCH32)
+ #define DAWN_PLATFORM_IS_32_BIT 1
+ static_assert(sizeof(sizeof(char)) == 4, "Expect sizeof(size_t) == 4");
diff --git a/srcpkgs/qt6-pdf/patches/0110-chromium-fix-missing-TEMP_FAILURE_RETRY-macro.patch b/srcpkgs/qt6-pdf/patches/0127-fix-missing-TEMP_FAILURE_RETRY-macro.patch
similarity index 78%
rename from srcpkgs/qt6-pdf/patches/0110-chromium-fix-missing-TEMP_FAILURE_RETRY-macro.patch
rename to srcpkgs/qt6-pdf/patches/0127-fix-missing-TEMP_FAILURE_RETRY-macro.patch
index 5558c54cf80211..6c93991a5b099f 100644
--- a/srcpkgs/qt6-pdf/patches/0110-chromium-fix-missing-TEMP_FAILURE_RETRY-macro.patch
+++ b/srcpkgs/qt6-pdf/patches/0127-fix-missing-TEMP_FAILURE_RETRY-macro.patch
@@ -1,7 +1,7 @@
 This macro is defined in glibc, but not musl.
 
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/sandbox/linux/suid/process_util.h
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/sandbox/linux/suid/process_util.h
+--- a/src/3rdparty/chromium/sandbox/linux/suid/process_util.h
++++ b/src/3rdparty/chromium/sandbox/linux/suid/process_util.h
 @@ -12,6 +12,16 @@
  #include <stdint.h>
  #include <sys/types.h>
diff --git a/srcpkgs/qt6-pdf/patches/0128-fix-missing-cstdint-include-musl.patch b/srcpkgs/qt6-pdf/patches/0128-fix-missing-cstdint-include-musl.patch
new file mode 100644
index 00000000000000..ce545be67d297d
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0128-fix-missing-cstdint-include-musl.patch
@@ -0,0 +1,10 @@
+--- a/src/3rdparty/chromium/net/third_party/quiche/src/quiche/http2/adapter/window_manager.h
++++ b/src/3rdparty/chromium/net/third_party/quiche/src/quiche/http2/adapter/window_manager.h
+@@ -4,6 +4,7 @@
+ #include <stddef.h>
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <functional>
+ 
+ #include "quiche/common/platform/api/quiche_export.h"
diff --git a/srcpkgs/qt6-pdf/patches/0129-chromium-sandbox-shed_getparam.patch b/srcpkgs/qt6-pdf/patches/0129-chromium-sandbox-shed_getparam.patch
deleted file mode 100644
index 94260d5d62eb17..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0129-chromium-sandbox-shed_getparam.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Allow SYS_sched_getparam and SYS_sched_getscheduler
-musl uses them for pthread_getschedparam()
-
---- a/src/3rdparty/chromium/sandbox/policy/linux/bpf_renderer_policy_linux.cc
-+++ b/src/3rdparty/chromium/sandbox/policy/linux/bpf_renderer_policy_linux.cc
-@@ -94,6 +94,11 @@
-     case __NR_pwrite64:
-     case __NR_sched_get_priority_max:
-     case __NR_sched_get_priority_min:
-+#ifndef __GLIBC__
-+    case __NR_sched_getparam:
-+    case __NR_sched_getscheduler:
-+    case __NR_sched_setscheduler:
-+#endif
-     case __NR_sysinfo:
-     case __NR_times:
-     case __NR_uname:
diff --git a/srcpkgs/qt6-pdf/patches/0112-chromium-unistd.h.patch b/srcpkgs/qt6-pdf/patches/0129-fix-musl-missing-unistd_h-include.patch
similarity index 94%
rename from srcpkgs/qt6-pdf/patches/0112-chromium-unistd.h.patch
rename to srcpkgs/qt6-pdf/patches/0129-fix-musl-missing-unistd_h-include.patch
index bb242a808aceaa..327874276f13e3 100644
--- a/srcpkgs/qt6-pdf/patches/0112-chromium-unistd.h.patch
+++ b/srcpkgs/qt6-pdf/patches/0129-fix-musl-missing-unistd_h-include.patch
@@ -1,6 +1,6 @@
 --- a/src/3rdparty/chromium/sandbox/linux/services/credentials.h
 +++ b/src/3rdparty/chromium/sandbox/linux/services/credentials.h
-@@ -13,6 +13,7 @@
+@@ -15,6 +15,7 @@
  
  #include <string>
  #include <vector>
diff --git a/srcpkgs/qt6-pdf/patches/0116-chromium-musl-get-thread-name.patch b/srcpkgs/qt6-pdf/patches/0130-fix-perfetto-GetThreadName-musl.patch
similarity index 73%
rename from srcpkgs/qt6-pdf/patches/0116-chromium-musl-get-thread-name.patch
rename to srcpkgs/qt6-pdf/patches/0130-fix-perfetto-GetThreadName-musl.patch
index d485385cbb629a..47dfb87f147ca7 100644
--- a/srcpkgs/qt6-pdf/patches/0116-chromium-musl-get-thread-name.patch
+++ b/srcpkgs/qt6-pdf/patches/0130-fix-perfetto-GetThreadName-musl.patch
@@ -1,5 +1,5 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/perfetto/include/perfetto/ext/base/thread_utils.h
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/perfetto/include/perfetto/ext/base/thread_utils.h
+--- a/src/3rdparty/chromium/third_party/perfetto/include/perfetto/ext/base/thread_utils.h
++++ b/src/3rdparty/chromium/third_party/perfetto/include/perfetto/ext/base/thread_utils.h
 @@ -30,7 +30,8 @@
  #include <algorithm>
  #endif
diff --git a/srcpkgs/qt6-pdf/patches/0131-fix-swiftshader-llvm-musl-config.patch b/srcpkgs/qt6-pdf/patches/0131-fix-swiftshader-llvm-musl-config.patch
new file mode 100644
index 00000000000000..e69de29bb2d1d6
diff --git a/srcpkgs/qt6-pdf/patches/0120-chromium-libc-malloc.patch b/srcpkgs/qt6-pdf/patches/0132-libc_malloc.patch
similarity index 66%
rename from srcpkgs/qt6-pdf/patches/0120-chromium-libc-malloc.patch
rename to srcpkgs/qt6-pdf/patches/0132-libc_malloc.patch
index fa32830760cdb2..0352361083d699 100644
--- a/srcpkgs/qt6-pdf/patches/0120-chromium-libc-malloc.patch
+++ b/srcpkgs/qt6-pdf/patches/0132-libc_malloc.patch
@@ -1,5 +1,5 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/process/memory_linux.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/process/memory_linux.cc
+--- a/src/3rdparty/chromium/base/process/memory_linux.cc
++++ b/src/3rdparty/chromium/base/process/memory_linux.cc
 @@ -18,6 +18,13 @@
  #include "base/threading/thread_restrictions.h"
  #include "build/build_config.h"
@@ -14,8 +14,8 @@
  namespace base {
  
  namespace {
-@@ -112,7 +119,7 @@ bool UncheckedMalloc(size_t size, void**
-     defined(TOOLKIT_QT) || !defined(LIBC_GLIBC)
+@@ -111,7 +118,7 @@ bool UncheckedMalloc(size_t size, void**
+ #elif defined(MEMORY_TOOL_REPLACES_ALLOCATOR) || !defined(LIBC_GLIBC) || defined(TOOLKIT_QT)
    *result = malloc(size);
  #elif defined(LIBC_GLIBC)
 -  *result = __libc_malloc(size);
@@ -23,7 +23,7 @@
  #endif
    return *result != nullptr;
  }
-@@ -123,7 +130,7 @@ void UncheckedFree(void* ptr) {
+@@ -122,7 +129,7 @@ void UncheckedFree(void* ptr) {
  #elif defined(MEMORY_TOOL_REPLACES_ALLOCATOR) || !defined(LIBC_GLIBC) || defined(TOOLKIT_QT)
    free(ptr);
  #elif defined(LIBC_GLIBC)
diff --git a/srcpkgs/qt6-pdf/patches/0133-musl-no-execinfo.patch b/srcpkgs/qt6-pdf/patches/0133-musl-no-execinfo.patch
new file mode 100644
index 00000000000000..3fa2dab93da01c
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0133-musl-no-execinfo.patch
@@ -0,0 +1,68 @@
+Source: https://git.alpinelinux.org/aports/plain/community/chromium/no-execinfo.patch
+musl does not have execinfo.h, and hence no implementation of
+. backtrace()
+. backtrace_symbols()
+for discussion about this, see https://www.openwall.com/lists/musl/2021/07/16/1
+--
+--- a/src/3rdparty/chromium/v8/src/codegen/external-reference-table.cc
++++ b/src/3rdparty/chromium/v8/src/codegen/external-reference-table.cc
+@@ -12,7 +12,9 @@
+ 
+ #if defined(DEBUG) && defined(V8_OS_LINUX) && !defined(V8_OS_ANDROID)
+ #define SYMBOLIZE_FUNCTION
++#if defined(__GLIBC__)
+ #include <execinfo.h>
++#endif
+ 
+ #include <vector>
+ 
+@@ -118,7 +120,7 @@ void ExternalReferenceTable::Init(Isolat
+ }
+ 
+ const char* ExternalReferenceTable::ResolveSymbol(void* address) {
+-#ifdef SYMBOLIZE_FUNCTION
++#if defined(SYMBOLIZE_FUNCTION) && defined(__GLIBC__)
+   char** names = backtrace_symbols(&address, 1);
+   const char* name = names[0];
+   // The array of names is malloc'ed. However, each name string is static
+--- a/src/3rdparty/chromium/base/debug/stack_trace.cc
++++ b/src/3rdparty/chromium/base/debug/stack_trace.cc
+@@ -273,7 +273,9 @@ void StackTrace::Print() const {
+ }
+ 
+ void StackTrace::OutputToStream(std::ostream* os) const {
++#if defined(__GLIBC__) && !defined(_AIX)
+   OutputToStreamWithPrefix(os, nullptr);
++#endif
+ }
+ 
+ std::string StackTrace::ToString() const {
+@@ -281,7 +283,7 @@ std::string StackTrace::ToString() const
+ }
+ 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();
+--- a/src/3rdparty/chromium/base/debug/stack_trace_unittest.cc
++++ b/src/3rdparty/chromium/base/debug/stack_trace_unittest.cc
+@@ -33,7 +33,7 @@ typedef MultiProcessTest StackTraceTest;
+ typedef testing::Test StackTraceTest;
+ #endif
+ 
+-#if !defined(__UCLIBC__) && !defined(_AIX)
++#if !defined(__UCLIBC__) && !defined(_AIX) && defined(__GLIBC__)
+ // StackTrace::OutputToStream() is not implemented under uclibc, nor AIX.
+ // See https://crbug.com/706728
+ 
+@@ -156,7 +156,7 @@ TEST_F(StackTraceTest, DebugOutputToStre
+ 
+ #endif  // !defined(__UCLIBC__) && !defined(_AIX)
+ 
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID)
++#if (BUILDFLAG(IS_POSIX) && defined(__GLIBC__)) && !BUILDFLAG(IS_ANDROID)
+ #if !BUILDFLAG(IS_IOS)
+ static char* newArray() {
+   // Clang warns about the mismatched new[]/delete if they occur in the same
diff --git a/srcpkgs/qt6-pdf/patches/0302-chromium-no-mallinfo.patch b/srcpkgs/qt6-pdf/patches/0134-musl-no-mallinfo.patch
similarity index 50%
rename from srcpkgs/qt6-pdf/patches/0302-chromium-no-mallinfo.patch
rename to srcpkgs/qt6-pdf/patches/0134-musl-no-mallinfo.patch
index 9f8d4a15c28e70..3ec083a830f49c 100644
--- a/srcpkgs/qt6-pdf/patches/0302-chromium-no-mallinfo.patch
+++ b/srcpkgs/qt6-pdf/patches/0134-musl-no-mallinfo.patch
@@ -1,76 +1,85 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/process/process_metrics_posix.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/process/process_metrics_posix.cc
-@@ -105,7 +105,8 @@ void IncreaseFdLimitTo(unsigned int max_
+Source: https://git.alpinelinux.org/aports/plain/community/chromium/no-mallinfo.patch
+musl does not implement mallinfo()/mallinfo2()
+(or rather, malloc-ng, musl's allocator, doesn't)
+--
+--- a/src/3rdparty/chromium/base/trace_event/malloc_dump_provider.cc
++++ b/src/3rdparty/chromium/base/trace_event/malloc_dump_provider.cc
+@@ -199,7 +199,6 @@ void ReportMallinfoStats(ProcessMemoryDu
+ #define MALLINFO2_FOUND_IN_LIBC
+   struct mallinfo2 info = mallinfo2();
+ #endif
+-#endif  // defined(__GLIBC__) && defined(__GLIBC_PREREQ)
+ #if !defined(MALLINFO2_FOUND_IN_LIBC)
+   struct mallinfo info = mallinfo();
+ #endif
+@@ -221,6 +220,7 @@ void ReportMallinfoStats(ProcessMemoryDu
+                               MemoryAllocatorDump::kUnitsBytes,
+                               total_allocated_size);
+   }
++#endif  // defined(__GLIBC__) && defined(__GLIBC_PREREQ)
+ }
+ #endif
+ 
+@@ -359,7 +359,7 @@ bool MallocDumpProvider::OnMemoryDump(co
+                      &allocated_objects_count);
+ #elif BUILDFLAG(IS_FUCHSIA)
+ // TODO(fuchsia): Port, see https://crbug.com/706592.
+-#else
++#elif defined(__GLIBC__)
+   ReportMallinfoStats(/*pmd=*/nullptr, &total_virtual_size, &resident_size,
+                       &allocated_objects_size, &allocated_objects_count);
+ #endif
+--- a/src/3rdparty/chromium/base/process/process_metrics_posix.cc
++++ b/src/3rdparty/chromium/base/process/process_metrics_posix.cc
+@@ -106,7 +106,7 @@ void IncreaseFdLimitTo(unsigned int max_
  
  #endif  // !BUILDFLAG(IS_FUCHSIA)
  
 -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
-+#if (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || \
-+	BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
  namespace {
  
  size_t GetMallocUsageMallinfo() {
-@@ -123,17 +124,18 @@ size_t GetMallocUsageMallinfo() {
+@@ -124,7 +124,7 @@ size_t GetMallocUsageMallinfo() {
  }
  
  }  // namespace
 -#endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ||
--        // BUILDFLAG(IS_ANDROID)
-+#endif  // (BUILDFLAG(IS_LINUX) && defined(__GLIBC__) ||
-+	// BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#endif  // (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS) ||
+         // BUILDFLAG(IS_ANDROID)
  
  size_t ProcessMetrics::GetMallocUsage() {
- #if BUILDFLAG(IS_APPLE)
+@@ -132,9 +132,9 @@ size_t ProcessMetrics::GetMallocUsage()
    malloc_statistics_t stats = {0};
    malloc_zone_statistics(nullptr, &stats);
    return stats.size_in_use;
 -#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
-+#elif (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || \
-+	BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
    return GetMallocUsageMallinfo();
 -#elif BUILDFLAG(IS_FUCHSIA)
-+#elif BUILDFLAG(IS_FUCHSIA) || (BUILDFLAG(IS_LINUX) && !defined(__GLIBC__))
++#else
    // TODO(fuchsia): Not currently exposed. https://crbug.com/735087.
    return 0;
  #endif
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/trace_event/malloc_dump_provider.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/trace_event/malloc_dump_provider.cc
-@@ -185,7 +185,6 @@
- #define MALLINFO2_FOUND_IN_LIBC
-   struct mallinfo2 info = mallinfo2();
- #endif
--#endif  // defined(__GLIBC__) && defined(__GLIBC_PREREQ)
- #if !defined(MALLINFO2_FOUND_IN_LIBC)
-   struct mallinfo info = mallinfo();
- #endif
-@@ -205,6 +204,7 @@
-     sys_alloc_dump->AddScalar(MemoryAllocatorDump::kNameSize,
-                               MemoryAllocatorDump::kUnitsBytes, info.uordblks);
-   }
-+#endif  // defined(__GLIBC__) && defined(__GLIBC_PREREQ)
- }
- #endif
- 
-@@ -339,7 +340,7 @@
-                      &allocated_objects_count);
- #elif BUILDFLAG(IS_FUCHSIA)
- // TODO(fuchsia): Port, see https://crbug.com/706592.
--#else
-+#elif defined(__GLIBC__)
-   ReportMallinfoStats(/*pmd=*/nullptr, &total_virtual_size, &resident_size,
-                       &allocated_objects_size, &allocated_objects_count);
- #endif
-musl does not implement mallinfo()/mallinfo2()
-(or rather, malloc-ng, musl's allocator, doesn't)
---
 --- a/src/3rdparty/chromium/base/allocator/partition_allocator/shim/allocator_shim_default_dispatch_to_partition_alloc.cc
 +++ b/src/3rdparty/chromium/base/allocator/partition_allocator/shim/allocator_shim_default_dispatch_to_partition_alloc.cc
-@@ -717,7 +717,7 @@
+@@ -736,7 +736,7 @@ SHIM_ALWAYS_EXPORT int mallopt(int cmd,
  
  #endif  // !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_ANDROID)
  
 -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if defined(__GLIBC__)
++#if 0
  SHIM_ALWAYS_EXPORT struct mallinfo mallinfo(void) __THROW {
-   base::SimplePartitionStatsDumper allocator_dumper;
+   partition_alloc::SimplePartitionStatsDumper allocator_dumper;
    Allocator()->DumpStats("malloc", true, &allocator_dumper);
+--- a/src/3rdparty/chromium/base/allocator/partition_allocator/shim/allocator_shim_default_dispatch_to_partition_alloc_unittest.cc
++++ b/src/3rdparty/chromium/base/allocator/partition_allocator/shim/allocator_shim_default_dispatch_to_partition_alloc_unittest.cc
+@@ -24,7 +24,7 @@ namespace allocator_shim::internal {
+ #if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC)
+ 
+ // Platforms on which we override weak libc symbols.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS)
+ 
+ PA_NOINLINE void FreeForTest(void* data) {
+   free(data);
diff --git a/srcpkgs/qt6-pdf/patches/0135-musl-partition-atfork.patch b/srcpkgs/qt6-pdf/patches/0135-musl-partition-atfork.patch
new file mode 100644
index 00000000000000..1d838142146c78
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0135-musl-partition-atfork.patch
@@ -0,0 +1,11 @@
+--- a/src/3rdparty/chromium/base/allocator/partition_allocator/partition_root.cc
++++ b/src/3rdparty/chromium/base/allocator/partition_allocator/partition_root.cc
+@@ -281,7 +281,7 @@ void PartitionAllocMallocInitOnce() {
+     return;
+   }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS)
+   // When fork() is called, only the current thread continues to execute in the
+   // child process. If the lock is held, but *not* by this thread when fork() is
+   // called, we have a deadlock.
diff --git a/srcpkgs/qt6-pdf/patches/0122-chromium-condition_var.patch b/srcpkgs/qt6-pdf/patches/0136-musl-v8-monotonic-pthread-cont_timedwait.patch
similarity index 82%
rename from srcpkgs/qt6-pdf/patches/0122-chromium-condition_var.patch
rename to srcpkgs/qt6-pdf/patches/0136-musl-v8-monotonic-pthread-cont_timedwait.patch
index 6c41312e516b3a..1dc8bc4d3d17ff 100644
--- a/srcpkgs/qt6-pdf/patches/0122-chromium-condition_var.patch
+++ b/srcpkgs/qt6-pdf/patches/0136-musl-v8-monotonic-pthread-cont_timedwait.patch
@@ -1,7 +1,7 @@
 Use monotonic clock for pthread_cond_timedwait with musl too.
 
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/v8/src/base/platform/condition-variable.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/v8/src/base/platform/condition-variable.cc
+--- a/src/3rdparty/chromium/v8/src/base/platform/condition-variable.cc
++++ b/src/3rdparty/chromium/v8/src/base/platform/condition-variable.cc
 @@ -20,7 +20,7 @@ namespace base {
  
  ConditionVariable::ConditionVariable() {
diff --git a/srcpkgs/qt6-pdf/patches/0123-chromium-musl-no-getcontext.patch b/srcpkgs/qt6-pdf/patches/0137-no-getcontext.patch
similarity index 72%
rename from srcpkgs/qt6-pdf/patches/0123-chromium-musl-no-getcontext.patch
rename to srcpkgs/qt6-pdf/patches/0137-no-getcontext.patch
index 46522ee0a066d7..fc419db67de0b9 100644
--- a/srcpkgs/qt6-pdf/patches/0123-chromium-musl-no-getcontext.patch
+++ b/srcpkgs/qt6-pdf/patches/0137-no-getcontext.patch
@@ -1,5 +1,5 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
+--- a/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
++++ b/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
 @@ -490,7 +490,9 @@ bool ExceptionHandler::SimulateSignalDel
    siginfo.si_code = SI_USER;
    siginfo.si_pid = getpid();
diff --git a/srcpkgs/qt6-pdf/patches/0138-no-mte.patch b/srcpkgs/qt6-pdf/patches/0138-no-mte.patch
new file mode 100644
index 00000000000000..074a518d6cf926
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0138-no-mte.patch
@@ -0,0 +1,11 @@
+--- a/src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_config.h
++++ b/src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_config.h
+@@ -153,7 +153,7 @@ static_assert(sizeof(void*) != 8, "");
+    defined(ARCH_CPU_LITTLE_ENDIAN))
+ 
+ #define PA_CONFIG_HAS_MEMORY_TAGGING()              \
+-  (defined(ARCH_CPU_ARM64) && defined(__clang__) && \
++  (0 && defined(ARCH_CPU_ARM64) && defined(__clang__) && \
+    !defined(ADDRESS_SANITIZER) &&                   \
+    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID)))
+ 
diff --git a/srcpkgs/qt6-pdf/patches/0139-old-clang.patch b/srcpkgs/qt6-pdf/patches/0139-old-clang.patch
new file mode 100644
index 00000000000000..4300abdea956e9
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0139-old-clang.patch
@@ -0,0 +1,11 @@
+--- a/src/3rdparty/chromium/build/config/compiler/BUILD.gn
++++ b/src/3rdparty/chromium/build/config/compiler/BUILD.gn
+@@ -1543,7 +1543,7 @@ config("compiler_deterministic") {
+     } else {
+       # -ffile-compilation-dir is an alias for both -fdebug-compilation-dir=
+       # and -fcoverage-compilation-dir=.
+-      cflags += [ "-ffile-compilation-dir=." ]
++      cflags += [ "-fdebug-compilation-dir=." ]
+       swiftflags += [ "-file-compilation-dir=." ]
+     }
+     if (!is_win) {
diff --git a/srcpkgs/qt6-pdf/patches/0140-reenable-linux-i686-builds.patch b/srcpkgs/qt6-pdf/patches/0140-reenable-linux-i686-builds.patch
new file mode 100644
index 00000000000000..47ff59a75bc42e
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0140-reenable-linux-i686-builds.patch
@@ -0,0 +1,19 @@
+--- a/src/3rdparty/chromium/BUILD.gn
++++ b/src/3rdparty/chromium/BUILD.gn
+@@ -1626,16 +1626,6 @@ if (use_blink && !is_cronet_build) {
+   }
+ }
+ 
+-# TODO(cassew): Add more OS's that don't support x86.
+-is_valid_x86_target =
+-    target_os != "ios" && target_os != "mac" &&
+-    (target_os != "linux" || use_libfuzzer || !build_with_chromium)
+-
+-# Note: v8_target_cpu == arm allows using the V8 arm simulator on x86 for fuzzing.
+-assert(
+-    is_valid_x86_target || target_cpu != "x86" || v8_target_cpu == "arm",
+-    "'target_cpu=x86' is not supported for 'target_os=$target_os'. Consider omitting 'target_cpu' (default) or using 'target_cpu=x64' instead.")
+-
+ group("chromium_builder_perf") {
+   testonly = true
+ 
diff --git a/srcpkgs/qt6-pdf/patches/0126-chromium-no-cdefs.patch b/srcpkgs/qt6-pdf/patches/0141-remove-sys-cdefs-includes.patch
similarity index 65%
rename from srcpkgs/qt6-pdf/patches/0126-chromium-no-cdefs.patch
rename to srcpkgs/qt6-pdf/patches/0141-remove-sys-cdefs-includes.patch
index 90faa3d664d02d..8d1c06e0dfa03c 100644
--- a/srcpkgs/qt6-pdf/patches/0126-chromium-no-cdefs.patch
+++ b/srcpkgs/qt6-pdf/patches/0141-remove-sys-cdefs-includes.patch
@@ -1,5 +1,5 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h
+--- a/src/3rdparty/chromium/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h
++++ b/src/3rdparty/chromium/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h
 @@ -17,8 +17,6 @@
  
  #include_next <sys/ptrace.h>
@@ -9,8 +9,8 @@
  // https://sourceware.org/bugzilla/show_bug.cgi?id=22433
  #if !defined(PTRACE_GET_THREAD_AREA) && !defined(PT_GET_THREAD_AREA) && \
      defined(__GLIBC__)
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/libsync/src/include/sync/sync.h
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/libsync/src/include/sync/sync.h
+--- a/src/3rdparty/chromium/third_party/libsync/src/include/sync/sync.h
++++ b/src/3rdparty/chromium/third_party/libsync/src/include/sync/sync.h
 @@ -19,12 +19,13 @@
  #ifndef __SYS_CORE_SYNC_H
  #define __SYS_CORE_SYNC_H
diff --git a/srcpkgs/qt6-pdf/patches/0142-sandbox-membarrier.patch b/srcpkgs/qt6-pdf/patches/0142-sandbox-membarrier.patch
new file mode 100644
index 00000000000000..47bcbf1de190e7
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0142-sandbox-membarrier.patch
@@ -0,0 +1,10 @@
+--- a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
++++ b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
+@@ -433,6 +433,7 @@ bool SyscallSets::IsAllowedProcessStartO
+   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-pdf/patches/0143-sndio.patch b/srcpkgs/qt6-pdf/patches/0143-sndio.patch
new file mode 100644
index 00000000000000..1e6dcac8d5a9bd
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0143-sndio.patch
@@ -0,0 +1,849 @@
+--- a/src/3rdparty/chromium/media/BUILD.gn
++++ b/src/3rdparty/chromium/media/BUILD.gn
+@@ -96,6 +96,9 @@ config("media_config") {
+       defines += [ "DLOPEN_PULSEAUDIO" ]
+     }
+   }
++  if (use_sndio) {
++    defines += [ "USE_SNDIO" ]
++  }
+   if (use_cras) {
+     defines += [ "USE_CRAS" ]
+   }
+--- a/src/3rdparty/chromium/media/audio/BUILD.gn
++++ b/src/3rdparty/chromium/media/audio/BUILD.gn
+@@ -282,6 +282,17 @@ jumbo_source_set("audio") {
+     sources += [ "linux/audio_manager_linux.cc" ]
+   }
+ 
++  if (use_sndio) {
++    libs += [ "sndio" ]
++    sources += [
++      "sndio/audio_manager_sndio.cc",
++      "sndio/sndio_input.cc",
++      "sndio/sndio_input.h",
++      "sndio/sndio_output.cc",
++      "sndio/sndio_output.h"
++    ]
++  }
++
+   if (use_alsa) {
+     libs += [ "asound" ]
+     sources += [
+--- a/src/3rdparty/chromium/media/audio/linux/audio_manager_linux.cc
++++ b/src/3rdparty/chromium/media/audio/linux/audio_manager_linux.cc
+@@ -23,6 +23,11 @@
+ #include "media/audio/pulse/audio_manager_pulse.h"
+ #include "media/audio/pulse/pulse_util.h"
+ #endif
++#if defined(USE_SNDIO)
++#include "media/audio/sndio/audio_manager_sndio.h"
++#include "media/audio/sndio/sndio_input.h"
++#include "media/audio/sndio/sndio_output.h"
++#endif
+ 
+ namespace media {
+ 
+--- /dev/null
++++ b/src/3rdparty/chromium/media/audio/sndio/audio_manager_sndio.cc
+@@ -0,0 +1,148 @@
++// Copyright (c) 2012 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "media/audio/sndio/audio_manager_sndio.h"
++
++#include "base/metrics/histogram_macros.h"
++#include "base/memory/ptr_util.h"
++#include "media/audio/audio_device_description.h"
++#include "media/audio/audio_output_dispatcher.h"
++#include "media/audio/sndio/sndio_input.h"
++#include "media/audio/sndio/sndio_output.h"
++#include "media/base/limits.h"
++#include "media/base/media_switches.h"
++
++namespace media {
++
++
++// Maximum number of output streams that can be open simultaneously.
++static const int kMaxOutputStreams = 4;
++
++// Default sample rate for input and output streams.
++static const int kDefaultSampleRate = 48000;
++
++void AddDefaultDevice(AudioDeviceNames* device_names) {
++  DCHECK(device_names->empty());
++  device_names->push_front(AudioDeviceName::CreateDefault());
++}
++
++bool AudioManagerSndio::HasAudioOutputDevices() {
++  return true;
++}
++
++bool AudioManagerSndio::HasAudioInputDevices() {
++  return true;
++}
++
++void AudioManagerSndio::GetAudioInputDeviceNames(
++    AudioDeviceNames* device_names) {
++  DCHECK(device_names->empty());
++  AddDefaultDevice(device_names);
++}
++
++void AudioManagerSndio::GetAudioOutputDeviceNames(
++    AudioDeviceNames* device_names) {
++  AddDefaultDevice(device_names);
++}
++
++const char* AudioManagerSndio::GetName() {
++  return "SNDIO";
++}
++
++AudioParameters AudioManagerSndio::GetInputStreamParameters(
++    const std::string& device_id) {
++  static const int kDefaultInputBufferSize = 1024;
++
++  int user_buffer_size = GetUserBufferSize();
++  int buffer_size = user_buffer_size ?
++      user_buffer_size : kDefaultInputBufferSize;
++
++  return AudioParameters(
++      AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO,
++      kDefaultSampleRate, buffer_size);
++}
++
++AudioManagerSndio::AudioManagerSndio(std::unique_ptr<AudioThread> audio_thread,
++                                         AudioLogFactory* audio_log_factory)
++    : AudioManagerBase(std::move(audio_thread),
++                       audio_log_factory) {
++  DLOG(WARNING) << "AudioManagerSndio";
++  SetMaxOutputStreamsAllowed(kMaxOutputStreams);
++}
++
++AudioManagerSndio::~AudioManagerSndio() {
++  Shutdown();
++}
++
++AudioOutputStream* AudioManagerSndio::MakeLinearOutputStream(
++    const AudioParameters& params,
++    const LogCallback& log_callback) {
++  DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format());
++  return MakeOutputStream(params);
++}
++
++AudioOutputStream* AudioManagerSndio::MakeLowLatencyOutputStream(
++    const AudioParameters& params,
++    const std::string& device_id,
++    const LogCallback& log_callback) {
++  DLOG_IF(ERROR, !device_id.empty()) << "Not implemented!";
++  DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format());
++  return MakeOutputStream(params);
++}
++
++AudioInputStream* AudioManagerSndio::MakeLinearInputStream(
++    const AudioParameters& params,
++    const std::string& device_id,
++    const LogCallback& log_callback) {
++  DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format());
++  return MakeInputStream(params);
++}
++
++AudioInputStream* AudioManagerSndio::MakeLowLatencyInputStream(
++    const AudioParameters& params,
++    const std::string& device_id,
++    const LogCallback& log_callback) {
++  DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format());
++  return MakeInputStream(params);
++}
++
++AudioParameters AudioManagerSndio::GetPreferredOutputStreamParameters(
++    const std::string& output_device_id,
++    const AudioParameters& input_params) {
++  // TODO(tommi): Support |output_device_id|.
++  DLOG_IF(ERROR, !output_device_id.empty()) << "Not implemented!";
++  static const int kDefaultOutputBufferSize = 2048;
++
++  ChannelLayout channel_layout = CHANNEL_LAYOUT_STEREO;
++  int sample_rate = kDefaultSampleRate;
++  int buffer_size = kDefaultOutputBufferSize;
++  if (input_params.IsValid()) {
++    sample_rate = input_params.sample_rate();
++    channel_layout = input_params.channel_layout();
++    buffer_size = std::min(buffer_size, input_params.frames_per_buffer());
++  }
++
++  int user_buffer_size = GetUserBufferSize();
++  if (user_buffer_size)
++    buffer_size = user_buffer_size;
++
++  return AudioParameters(
++      AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout,
++      sample_rate, buffer_size);
++}
++
++AudioInputStream* AudioManagerSndio::MakeInputStream(
++    const AudioParameters& params) {
++  DLOG(WARNING) << "MakeInputStream";
++  return new SndioAudioInputStream(this,
++             AudioDeviceDescription::kDefaultDeviceId, params);
++}
++
++AudioOutputStream* AudioManagerSndio::MakeOutputStream(
++    const AudioParameters& params) {
++  DLOG(WARNING) << "MakeOutputStream";
++  return new SndioAudioOutputStream(params, this);
++}
++
++}  // namespace media
+--- /dev/null
++++ b/src/3rdparty/chromium/media/audio/sndio/audio_manager_sndio.h
+@@ -0,0 +1,65 @@
++// Copyright (c) 2012 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef MEDIA_AUDIO_SNDIO_AUDIO_MANAGER_SNDIO_H_
++#define MEDIA_AUDIO_SNDIO_AUDIO_MANAGER_SNDIO_H_
++
++#include <set>
++
++#include "base/compiler_specific.h"
++#include "base/macros.h"
++#include "base/memory/ref_counted.h"
++#include "base/threading/thread.h"
++#include "media/audio/audio_manager_base.h"
++
++namespace media {
++
++class MEDIA_EXPORT AudioManagerSndio : public AudioManagerBase {
++ public:
++  AudioManagerSndio(std::unique_ptr<AudioThread> audio_thread,
++                   AudioLogFactory* audio_log_factory);
++  ~AudioManagerSndio() override;
++
++  // Implementation of AudioManager.
++  bool HasAudioOutputDevices() override;
++  bool HasAudioInputDevices() override;
++  void GetAudioInputDeviceNames(AudioDeviceNames* device_names) override;
++  void GetAudioOutputDeviceNames(AudioDeviceNames* device_names) override;
++  AudioParameters GetInputStreamParameters(
++      const std::string& device_id) override;
++  const char* GetName() override;
++
++  // Implementation of AudioManagerBase.
++  AudioOutputStream* MakeLinearOutputStream(
++      const AudioParameters& params,
++      const LogCallback& log_callback) override;
++  AudioOutputStream* MakeLowLatencyOutputStream(
++      const AudioParameters& params,
++      const std::string& device_id,
++      const LogCallback& log_callback) override;
++  AudioInputStream* MakeLinearInputStream(
++      const AudioParameters& params,
++      const std::string& device_id,
++      const LogCallback& log_callback) override;
++  AudioInputStream* MakeLowLatencyInputStream(
++      const AudioParameters& params,
++      const std::string& device_id,
++      const LogCallback& log_callback) override;
++
++ protected:
++  AudioParameters GetPreferredOutputStreamParameters(
++      const std::string& output_device_id,
++      const AudioParameters& input_params) override;
++
++ private:
++  // Called by MakeLinearOutputStream and MakeLowLatencyOutputStream.
++  AudioOutputStream* MakeOutputStream(const AudioParameters& params);
++  AudioInputStream* MakeInputStream(const AudioParameters& params);
++
++  DISALLOW_COPY_AND_ASSIGN(AudioManagerSndio);
++};
++
++}  // namespace media
++
++#endif  // MEDIA_AUDIO_SNDIO_AUDIO_MANAGER_SNDIO_H_
+--- /dev/null
++++ b/src/3rdparty/chromium/media/audio/sndio/sndio_input.cc
+@@ -0,0 +1,200 @@
++// Copyright 2013 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "base/bind.h"
++#include "base/logging.h"
++#include "base/macros.h"
++#include "media/base/audio_timestamp_helper.h"
++#include "media/audio/sndio/audio_manager_sndio.h"
++#include "media/audio/audio_manager.h"
++#include "media/audio/sndio/sndio_input.h"
++
++namespace media {
++
++static const SampleFormat kSampleFormat = kSampleFormatS16;
++
++void SndioAudioInputStream::OnMoveCallback(void *arg, int delta)
++{
++  SndioAudioInputStream* self = static_cast<SndioAudioInputStream*>(arg);
++
++  self->hw_delay += delta;
++}
++
++void *SndioAudioInputStream::ThreadEntry(void *arg) {
++  SndioAudioInputStream* self = static_cast<SndioAudioInputStream*>(arg);
++
++  self->ThreadLoop();
++  return NULL;
++}
++
++SndioAudioInputStream::SndioAudioInputStream(AudioManagerBase* manager,
++                                             const std::string& device_name,
++                                             const AudioParameters& params)
++    : manager(manager),
++      params(params),
++      audio_bus(AudioBus::Create(params)),
++      state(kClosed) {
++}
++
++SndioAudioInputStream::~SndioAudioInputStream() {
++  if (state != kClosed)
++    Close();
++}
++
++bool SndioAudioInputStream::Open() {
++  struct sio_par par;
++  int sig;
++
++  if (state != kClosed)
++    return false;
++
++  if (params.format() != AudioParameters::AUDIO_PCM_LINEAR &&
++      params.format() != AudioParameters::AUDIO_PCM_LOW_LATENCY) {
++    LOG(WARNING) << "Unsupported audio format.";
++    return false;
++  }
++
++  sio_initpar(&par);
++  par.rate = params.sample_rate();
++  par.rchan = params.channels();
++  par.bits = SampleFormatToBitsPerChannel(kSampleFormat);
++  par.bps = par.bits / 8;
++  par.sig = sig = par.bits != 8 ? 1 : 0;
++  par.le = SIO_LE_NATIVE;
++  par.appbufsz = params.frames_per_buffer();
++
++  hdl = sio_open(SIO_DEVANY, SIO_REC, 0);
++
++  if (hdl == NULL) {
++    LOG(ERROR) << "Couldn't open audio device.";
++    return false;
++  }
++
++  if (!sio_setpar(hdl, &par) || !sio_getpar(hdl, &par)) {
++    LOG(ERROR) << "Couldn't set audio parameters.";
++    goto bad_close;
++  }
++
++  if (par.rate  != (unsigned int)params.sample_rate() ||
++      par.rchan != (unsigned int)params.channels() ||
++      par.bits  != (unsigned int)SampleFormatToBitsPerChannel(kSampleFormat) ||
++      par.sig   != (unsigned int)sig ||
++      (par.bps > 1 && par.le != SIO_LE_NATIVE) ||
++      (par.bits != par.bps * 8)) {
++    LOG(ERROR) << "Unsupported audio parameters.";
++    goto bad_close;
++  }
++  state = kStopped;
++  buffer = new char[audio_bus->frames() * params.GetBytesPerFrame(kSampleFormat)];
++  sio_onmove(hdl, &OnMoveCallback, this);
++  return true;
++bad_close:
++  sio_close(hdl);
++  return false;
++}
++
++void SndioAudioInputStream::Start(AudioInputCallback* cb) {
++
++  StartAgc();
++
++  state = kRunning;
++  hw_delay = 0;
++  callback = cb;
++  sio_start(hdl);
++  if (pthread_create(&thread, NULL, &ThreadEntry, this) != 0) {
++    LOG(ERROR) << "Failed to create real-time thread for recording.";
++    sio_stop(hdl);
++    state = kStopped;
++  }
++}
++
++void SndioAudioInputStream::Stop() {
++
++  if (state == kStopped)
++    return;
++
++  state = kStopWait;
++  pthread_join(thread, NULL);
++  sio_stop(hdl);
++  state = kStopped;
++
++  StopAgc();
++}
++
++void SndioAudioInputStream::Close() {
++
++  if (state == kClosed)
++    return;
++
++  if (state == kRunning)
++    Stop();
++
++  state = kClosed;
++  delete [] buffer;
++  sio_close(hdl);
++
++  manager->ReleaseInputStream(this);
++}
++
++double SndioAudioInputStream::GetMaxVolume() {
++  // Not supported
++  return 0.0;
++}
++
++void SndioAudioInputStream::SetVolume(double volume) {
++  // Not supported. Do nothing.
++}
++
++double SndioAudioInputStream::GetVolume() {
++  // Not supported.
++  return 0.0;
++}
++
++bool SndioAudioInputStream::IsMuted() {
++  // Not supported.
++  return false;
++}
++
++void SndioAudioInputStream::SetOutputDeviceForAec(
++    const std::string& output_device_id) {
++  // Not supported.
++}
++
++void SndioAudioInputStream::ThreadLoop(void) {
++  size_t todo, n;
++  char *data;
++  unsigned int nframes;
++  double normalized_volume = 0.0;
++
++  nframes = audio_bus->frames();
++
++  while (state == kRunning && !sio_eof(hdl)) {
++
++    GetAgcVolume(&normalized_volume);
++
++    // read one block
++    todo = nframes * params.GetBytesPerFrame(kSampleFormat);
++    data = buffer;
++    while (todo > 0) {
++      n = sio_read(hdl, data, todo);
++      if (n == 0)
++        return;	// unrecoverable I/O error
++      todo -= n;
++      data += n;
++    }
++    hw_delay -= nframes;
++
++    // convert frames count to TimeDelta
++    const base::TimeDelta delay = AudioTimestampHelper::FramesToTime(hw_delay,
++      params.sample_rate());
++
++    // push into bus
++    audio_bus->FromInterleaved<SignedInt16SampleTypeTraits>(reinterpret_cast<int16_t*>(buffer), nframes);
++
++    // invoke callback
++    callback->OnData(audio_bus.get(), base::TimeTicks::Now() - delay, 1.);
++  }
++}
++
++}  // namespace media
+--- /dev/null
++++ b/src/3rdparty/chromium/media/audio/sndio/sndio_input.h
+@@ -0,0 +1,91 @@
++// Copyright 2013 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef MEDIA_AUDIO_SNDIO_SNDIO_INPUT_H_
++#define MEDIA_AUDIO_SNDIO_SNDIO_INPUT_H_
++
++#include <stdint.h>
++#include <string>
++#include <sndio.h>
++
++#include "base/compiler_specific.h"
++#include "base/macros.h"
++#include "base/memory/weak_ptr.h"
++#include "base/time/time.h"
++#include "media/audio/agc_audio_stream.h"
++#include "media/audio/audio_io.h"
++#include "media/audio/audio_device_description.h"
++#include "media/base/audio_parameters.h"
++
++namespace media {
++
++class AudioManagerBase;
++
++// Implementation of AudioOutputStream using sndio(7)
++class SndioAudioInputStream : public AgcAudioStream<AudioInputStream> {
++ public:
++  // Pass this to the constructor if you want to attempt auto-selection
++  // of the audio recording device.
++  static const char kAutoSelectDevice[];
++
++  // Create a PCM Output stream for the SNDIO device identified by
++  // |device_name|. If unsure of what to use for |device_name|, use
++  // |kAutoSelectDevice|.
++  SndioAudioInputStream(AudioManagerBase* audio_manager,
++                     const std::string& device_name,
++                     const AudioParameters& params);
++
++  ~SndioAudioInputStream() override;
++
++  // Implementation of AudioInputStream.
++  bool Open() override;
++  void Start(AudioInputCallback* callback) override;
++  void Stop() override;
++  void Close() override;
++  double GetMaxVolume() override;
++  void SetVolume(double volume) override;
++  double GetVolume() override;
++  bool IsMuted() override;
++  void SetOutputDeviceForAec(const std::string& output_device_id) override;
++
++ private:
++
++  enum StreamState {
++    kClosed,            // Not opened yet
++    kStopped,           // Device opened, but not started yet
++    kRunning,           // Started, device playing
++    kStopWait           // Stopping, waiting for the real-time thread to exit
++  };
++
++  // C-style call-backs
++  static void OnMoveCallback(void *arg, int delta);
++  static void* ThreadEntry(void *arg);
++
++  // Continuously moves data from the device to the consumer
++  void ThreadLoop();
++  // Our creator, the audio manager needs to be notified when we close.
++  AudioManagerBase* manager;
++  // Parameters of the source
++  AudioParameters params;
++  // We store data here for consumer
++  std::unique_ptr<AudioBus> audio_bus;
++  // Call-back that consumes recorded data
++  AudioInputCallback* callback;  // Valid during a recording session.
++  // Handle of the audio device
++  struct sio_hdl* hdl;
++  // Current state of the stream
++  enum StreamState state;
++  // High priority thread running ThreadLoop()
++  pthread_t thread;
++  // Number of frames buffered in the hardware
++  int hw_delay;
++  // Temporary buffer where data is stored sndio-compatible format
++  char* buffer;
++
++  DISALLOW_COPY_AND_ASSIGN(SndioAudioInputStream);
++};
++
++}  // namespace media
++
++#endif  // MEDIA_AUDIO_SNDIO_SNDIO_INPUT_H_
+--- /dev/null
++++ b/src/3rdparty/chromium/media/audio/sndio/sndio_output.cc
+@@ -0,0 +1,183 @@
++// Copyright (c) 2012 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "base/logging.h"
++#include "base/time/time.h"
++#include "base/time/default_tick_clock.h"
++#include "media/audio/audio_manager_base.h"
++#include "media/base/audio_timestamp_helper.h"
++#include "media/audio/sndio/sndio_output.h"
++
++namespace media {
++
++static const SampleFormat kSampleFormat = kSampleFormatS16;
++
++void SndioAudioOutputStream::OnMoveCallback(void *arg, int delta) {
++  SndioAudioOutputStream* self = static_cast<SndioAudioOutputStream*>(arg);
++
++  self->hw_delay -= delta;
++}
++
++void SndioAudioOutputStream::OnVolCallback(void *arg, unsigned int vol) {
++  SndioAudioOutputStream* self = static_cast<SndioAudioOutputStream*>(arg);
++
++  self->vol = vol;
++}
++
++void *SndioAudioOutputStream::ThreadEntry(void *arg) {
++  SndioAudioOutputStream* self = static_cast<SndioAudioOutputStream*>(arg);
++
++  self->ThreadLoop();
++  return NULL;
++}
++
++SndioAudioOutputStream::SndioAudioOutputStream(const AudioParameters& params,
++                                               AudioManagerBase* manager)
++    : manager(manager),
++      params(params),
++      audio_bus(AudioBus::Create(params)),
++      state(kClosed),
++      mutex(PTHREAD_MUTEX_INITIALIZER) {
++}
++
++SndioAudioOutputStream::~SndioAudioOutputStream() {
++  if (state != kClosed)
++    Close();
++}
++
++bool SndioAudioOutputStream::Open() {
++  struct sio_par par;
++  int sig;
++
++  if (params.format() != AudioParameters::AUDIO_PCM_LINEAR &&
++      params.format() != AudioParameters::AUDIO_PCM_LOW_LATENCY) {
++    LOG(WARNING) << "Unsupported audio format.";
++    return false;
++  }
++  sio_initpar(&par);
++  par.rate = params.sample_rate();
++  par.pchan = params.channels();
++  par.bits = SampleFormatToBitsPerChannel(kSampleFormat);
++  par.bps = par.bits / 8;
++  par.sig = sig = par.bits != 8 ? 1 : 0;
++  par.le = SIO_LE_NATIVE;
++  par.appbufsz = params.frames_per_buffer();
++
++  hdl = sio_open(SIO_DEVANY, SIO_PLAY, 0);
++  if (hdl == NULL) {
++    LOG(ERROR) << "Couldn't open audio device.";
++    return false;
++  }
++  if (!sio_setpar(hdl, &par) || !sio_getpar(hdl, &par)) {
++    LOG(ERROR) << "Couldn't set audio parameters.";
++    goto bad_close;
++  }
++  if (par.rate  != (unsigned int)params.sample_rate() ||
++      par.pchan != (unsigned int)params.channels() ||
++      par.bits  != (unsigned int)SampleFormatToBitsPerChannel(kSampleFormat) ||
++      par.sig   != (unsigned int)sig ||
++      (par.bps > 1 && par.le != SIO_LE_NATIVE) ||
++      (par.bits != par.bps * 8)) {
++    LOG(ERROR) << "Unsupported audio parameters.";
++    goto bad_close;
++  }
++  state = kStopped;
++  volpending = 0;
++  vol = 0;
++  buffer = new char[audio_bus->frames() * params.GetBytesPerFrame(kSampleFormat)];
++  sio_onmove(hdl, &OnMoveCallback, this);
++  sio_onvol(hdl, &OnVolCallback, this);
++  return true;
++ bad_close:
++  sio_close(hdl);
++  return false;
++}
++
++void SndioAudioOutputStream::Close() {
++  if (state == kClosed)
++    return;
++  if (state == kRunning)
++    Stop();
++  state = kClosed;
++  delete [] buffer;
++  sio_close(hdl);
++  manager->ReleaseOutputStream(this);  // Calls the destructor
++}
++
++void SndioAudioOutputStream::Start(AudioSourceCallback* callback) {
++  state = kRunning;
++  hw_delay = 0;
++  source = callback;
++  sio_start(hdl);
++  if (pthread_create(&thread, NULL, &ThreadEntry, this) != 0) {
++    LOG(ERROR) << "Failed to create real-time thread.";
++    sio_stop(hdl);
++    state = kStopped;
++  }
++}
++
++void SndioAudioOutputStream::Stop() {
++  if (state == kStopped)
++    return;
++  state = kStopWait;
++  pthread_join(thread, NULL);
++  sio_stop(hdl);
++  state = kStopped;
++}
++
++void SndioAudioOutputStream::SetVolume(double v) {
++  pthread_mutex_lock(&mutex);
++  vol = v * SIO_MAXVOL;
++  volpending = 1;
++  pthread_mutex_unlock(&mutex);
++}
++
++void SndioAudioOutputStream::GetVolume(double* v) {
++  pthread_mutex_lock(&mutex);
++  *v = vol * (1. / SIO_MAXVOL);
++  pthread_mutex_unlock(&mutex);
++}
++
++// This stream is always used with sub second buffer sizes, where it's
++// sufficient to simply always flush upon Start().
++void SndioAudioOutputStream::Flush() {}
++
++void SndioAudioOutputStream::ThreadLoop(void) {
++  int avail, count, result;
++
++  while (state == kRunning) {
++    // Update volume if needed
++    pthread_mutex_lock(&mutex);
++    if (volpending) {
++      volpending = 0;
++      sio_setvol(hdl, vol);
++    }
++    pthread_mutex_unlock(&mutex);
++
++    // Get data to play
++    const base::TimeDelta delay = AudioTimestampHelper::FramesToTime(hw_delay,
++	params.sample_rate());
++    count = source->OnMoreData(delay, base::TimeTicks::Now(), 0, audio_bus.get());
++    audio_bus->ToInterleaved<SignedInt16SampleTypeTraits>(count, reinterpret_cast<int16_t*>(buffer));
++    if (count == 0) {
++      // We have to submit something to the device
++      count = audio_bus->frames();
++      memset(buffer, 0, count * params.GetBytesPerFrame(kSampleFormat));
++      LOG(WARNING) << "No data to play, running empty cycle.";
++    }
++
++    // Submit data to the device
++    avail = count * params.GetBytesPerFrame(kSampleFormat);
++    result = sio_write(hdl, buffer, avail);
++    if (result == 0) {
++      LOG(WARNING) << "Audio device disconnected.";
++      break;
++    }
++
++    // Update hardware pointer
++    hw_delay += count;
++  }
++}
++
++}  // namespace media
+--- /dev/null
++++ b/src/3rdparty/chromium/media/audio/sndio/sndio_output.h
+@@ -0,0 +1,86 @@
++// Copyright (c) 2012 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef MEDIA_AUDIO_SNDIO_SNDIO_OUTPUT_H_
++#define MEDIA_AUDIO_SNDIO_SNDIO_OUTPUT_H_
++
++#include <pthread.h>
++#include <sndio.h>
++
++#include "base/time/tick_clock.h"
++#include "base/time/time.h"
++#include "media/audio/audio_io.h"
++
++namespace media {
++
++class AudioManagerBase;
++
++// Implementation of AudioOutputStream using sndio(7)
++class SndioAudioOutputStream : public AudioOutputStream {
++ public:
++  // The manager is creating this object
++  SndioAudioOutputStream(const AudioParameters& params,
++                         AudioManagerBase* manager);
++  virtual ~SndioAudioOutputStream();
++
++  // Implementation of AudioOutputStream.
++  bool Open() override;
++  void Close() override;
++  void Start(AudioSourceCallback* callback) override;
++  void Stop() override;
++  void SetVolume(double volume) override;
++  void GetVolume(double* volume) override;
++  void Flush() override;
++
++  friend void sndio_onmove(void *arg, int delta);
++  friend void sndio_onvol(void *arg, unsigned int vol);
++  friend void *sndio_threadstart(void *arg);
++
++ private:
++  enum StreamState {
++    kClosed,            // Not opened yet
++    kStopped,           // Device opened, but not started yet
++    kRunning,           // Started, device playing
++    kStopWait           // Stopping, waiting for the real-time thread to exit
++  };
++
++  // C-style call-backs
++  static void OnMoveCallback(void *arg, int delta);
++  static void OnVolCallback(void *arg, unsigned int vol);
++  static void* ThreadEntry(void *arg);
++
++  // Continuously moves data from the producer to the device
++  void ThreadLoop(void);
++
++  // Our creator, the audio manager needs to be notified when we close.
++  AudioManagerBase* manager;
++  // Parameters of the source
++  AudioParameters params;
++  // Source stores data here
++  std::unique_ptr<AudioBus> audio_bus;
++  // Call-back that produces data to play
++  AudioSourceCallback* source;
++  // Handle of the audio device
++  struct sio_hdl* hdl;
++  // Current state of the stream
++  enum StreamState state;
++  // High priority thread running ThreadLoop()
++  pthread_t thread;
++  // Protects vol, volpending and hw_delay
++  pthread_mutex_t mutex;
++  // Current volume in the 0..SIO_MAXVOL range
++  int vol;
++  // Set to 1 if volumes must be refreshed in the realtime thread
++  int volpending;
++  // Number of frames buffered in the hardware
++  int hw_delay;
++  // Temporary buffer where data is stored sndio-compatible format
++  char* buffer;
++
++  DISALLOW_COPY_AND_ASSIGN(SndioAudioOutputStream);
++};
++
++}  // namespace media
++
++#endif  // MEDIA_AUDIO_SNDIO_SNDIO_OUTPUT_H_
+--- a/src/3rdparty/chromium/media/media_options.gni
++++ b/src/3rdparty/chromium/media/media_options.gni
+@@ -189,6 +189,9 @@ declare_args() {
+   # Enables runtime selection of ALSA library for audio.
+   use_alsa = false
+ 
++  # Enable runtime selection of sndio(7)
++  use_sndio = false
++
+   # Alsa should be used on all non-Android, non-Mac POSIX systems - with the
+   # exception of CastOS desktop builds.
+   #
diff --git a/srcpkgs/qt6-pdf/patches/0155-systypes.patch b/srcpkgs/qt6-pdf/patches/0144-systypes.patch
similarity index 93%
rename from srcpkgs/qt6-pdf/patches/0155-systypes.patch
rename to srcpkgs/qt6-pdf/patches/0144-systypes.patch
index f4e71e939cd1ce..431f7add784da2 100644
--- a/srcpkgs/qt6-pdf/patches/0155-systypes.patch
+++ b/srcpkgs/qt6-pdf/patches/0144-systypes.patch
@@ -1,6 +1,6 @@
 --- a/src/3rdparty/chromium/base/third_party/symbolize/symbolize.h
 +++ b/src/3rdparty/chromium/base/third_party/symbolize/symbolize.h
-@@ -58,6 +58,8 @@
+@@ -60,6 +60,8 @@
  #include "config.h"
  #include "glog/logging.h"
  
diff --git a/srcpkgs/qt6-pdf/patches/0150-chromium-unbundle-ffmpeg-av_stream_get_first_dts.patch b/srcpkgs/qt6-pdf/patches/0145-unbundle-ffmpeg-av_stream_get_first_dts.patch
similarity index 56%
rename from srcpkgs/qt6-pdf/patches/0150-chromium-unbundle-ffmpeg-av_stream_get_first_dts.patch
rename to srcpkgs/qt6-pdf/patches/0145-unbundle-ffmpeg-av_stream_get_first_dts.patch
index e7f6048fbc1c7b..7d426098ed0228 100644
--- a/srcpkgs/qt6-pdf/patches/0150-chromium-unbundle-ffmpeg-av_stream_get_first_dts.patch
+++ b/srcpkgs/qt6-pdf/patches/0145-unbundle-ffmpeg-av_stream_get_first_dts.patch
@@ -1,5 +1,5 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/build/linux/unbundle/ffmpeg.gn
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/build/linux/unbundle/ffmpeg.gn
+--- a/src/3rdparty/chromium/build/linux/unbundle/ffmpeg.gn
++++ b/src/3rdparty/chromium/build/linux/unbundle/ffmpeg.gn
 @@ -12,6 +12,7 @@ pkg_config("system_ffmpeg") {
      "libavformat",
      "libavutil",
diff --git a/srcpkgs/qt6-pdf/patches/0151-chromium-unbundled-cross-toolchain.patch b/srcpkgs/qt6-pdf/patches/0146-unbundled-cross-toolchain.patch
similarity index 56%
rename from srcpkgs/qt6-pdf/patches/0151-chromium-unbundled-cross-toolchain.patch
rename to srcpkgs/qt6-pdf/patches/0146-unbundled-cross-toolchain.patch
index 746d2dfb9a7ed2..4381d0779ede74 100644
--- a/srcpkgs/qt6-pdf/patches/0151-chromium-unbundled-cross-toolchain.patch
+++ b/srcpkgs/qt6-pdf/patches/0146-unbundled-cross-toolchain.patch
@@ -1,5 +1,5 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/build/toolchain/linux/unbundle/BUILD.gn
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/build/toolchain/linux/unbundle/BUILD.gn
+--- a/src/3rdparty/chromium/build/toolchain/linux/unbundle/BUILD.gn
++++ b/src/3rdparty/chromium/build/toolchain/linux/unbundle/BUILD.gn
 @@ -35,8 +35,8 @@ gcc_toolchain("host") {
    extra_ldflags = getenv("BUILD_LDFLAGS")
  
diff --git a/srcpkgs/qt6-pdf/patches/0148-webrtc-size_t.patch b/srcpkgs/qt6-pdf/patches/0148-webrtc-size_t.patch
new file mode 100644
index 00000000000000..c9f26b15e6a821
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0148-webrtc-size_t.patch
@@ -0,0 +1,10 @@
+--- a/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
++++ b/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
+@@ -14,6 +14,7 @@
+ #include <stddef.h>
+ 
+ #include <array>
++#include <cstddef>
+ 
+ namespace webrtc {
+ 
diff --git a/srcpkgs/qt6-pdf/patches/0152-chromium-webrtc-size_t.patch b/srcpkgs/qt6-pdf/patches/0152-chromium-webrtc-size_t.patch
deleted file mode 100644
index 8f60204ff5845d..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0152-chromium-webrtc-size_t.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
-@@ -14,6 +14,7 @@
- #include <stddef.h>
- 
- #include <array>
-+#include <cstddef>
- 
- namespace webrtc {
- 
diff --git a/srcpkgs/qt6-pdf/patches/0153-chromium-webrtc-size_t.patch b/srcpkgs/qt6-pdf/patches/0153-chromium-webrtc-size_t.patch
deleted file mode 100644
index 3b5b7a3d53b995..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0153-chromium-webrtc-size_t.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/angle/include/platform/PlatformMethods.h
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/angle/include/platform/PlatformMethods.h
-@@ -222,11 +222,11 @@ inline void DefaultHistogramBoolean(Plat
- 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-pdf/patches/0154-chromium-uit_t.patch b/srcpkgs/qt6-pdf/patches/0154-chromium-uit_t.patch
deleted file mode 100644
index d13a31fee402b0..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0154-chromium-uit_t.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/sandbox/linux/services/credentials.h
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/sandbox/linux/services/credentials.h
-@@ -14,6 +14,8 @@
- #include <string>
- #include <vector>
- 
-+#include <sys/types.h>
-+
- #include "sandbox/linux/system_headers/capability.h"
- #include "sandbox/sandbox_export.h"
- 
diff --git a/srcpkgs/qt6-pdf/patches/0300-chromium-musl-hacks.patch b/srcpkgs/qt6-pdf/patches/0300-chromium-musl-hacks.patch
deleted file mode 100644
index e0b91a09a84f4b..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0300-chromium-musl-hacks.patch
+++ /dev/null
@@ -1,38 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/debug/stack_trace.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/debug/stack_trace.cc
-@@ -234,7 +234,7 @@ bool StackTrace::WillSymbolizeToStreamFo
-   // Symbols are not expected to be reliable when gn args specifies
-   // symbol_level=0.
-   return false;
--#elif defined(__UCLIBC__) || defined(_AIX)
-+#elif defined(__GLIBC__) || defined(_AIX)
-   // StackTrace::OutputToStream() is not implemented under uclibc, nor AIX.
-   // See https://crbug.com/706728
-   return false;
-@@ -273,7 +273,9 @@ void StackTrace::Print() const {
- }
- 
- void StackTrace::OutputToStream(std::ostream* os) const {
-+#if defined(__GLIBC__)
-   OutputToStreamWithPrefix(os, nullptr);
-+#endif
- }
- 
- std::string StackTrace::ToString() const {
-@@ -281,14 +283,14 @@ std::string StackTrace::ToString() const
- }
- 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();
- }
- 
- std::ostream& operator<<(std::ostream& os, const StackTrace& s) {
--#if !defined(__UCLIBC__) && !defined(_AIX)
-+#if defined(__GLIBC__) && !defined(_AIX)
-   s.OutputToStream(&os);
- #else
-   os << "StackTrace::OutputToStream not implemented.";
diff --git a/srcpkgs/qt6-pdf/patches/0301-chromium-musl-sandbox.patch b/srcpkgs/qt6-pdf/patches/0301-chromium-musl-sandbox.patch
deleted file mode 100644
index 8332e6a67117e1..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0301-chromium-musl-sandbox.patch
+++ /dev/null
@@ -1,70 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
-@@ -134,6 +134,7 @@ namespace sandbox {
- ResultExpr RestrictCloneToThreadsAndEPERMFork() {
-   const Arg<unsigned long> flags(0);
- 
-+#ifdef __GLIBC__
-   // TODO(mdempsky): Extend DSL to support (flags & ~mask1) == mask2.
-   const uint64_t kAndroidCloneMask = CLONE_VM | CLONE_FS | CLONE_FILES |
-                                      CLONE_SIGHAND | CLONE_THREAD |
-@@ -160,6 +161,16 @@ ResultExpr RestrictCloneToThreadsAndEPER
-   return If(IsAndroid() ? android_test : glibc_test, Allow())
-       .ElseIf(is_fork_or_clone_vfork, 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
- }
- 
- #ifndef PR_PAC_RESET_KEYS
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
-@@ -424,6 +424,9 @@ bool SyscallSets::IsAllowedProcessStartO
- #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.
-@@ -436,7 +439,9 @@ bool SyscallSets::IsAllowedProcessStartO
- #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:
-@@ -550,6 +555,10 @@ bool SyscallSets::IsAllowedAddressSpaceA
-     case __NR_mlock:
-     case __NR_munlock:
-     case __NR_munmap:
-+#ifndef __GLIBC__
-+    case __NR_mremap:
-+    case __NR_membarrier:
-+#endif
-       return true;
-     case __NR_madvise:
-     case __NR_mincore:
-@@ -567,7 +575,9 @@ bool SyscallSets::IsAllowedAddressSpaceA
-     case __NR_modify_ldt:
- #endif
-     case __NR_mprotect:
-+#ifdef __GLIBC__
-     case __NR_mremap:
-+#endif
-     case __NR_msync:
-     case __NR_munlockall:
-     case __NR_readahead:
diff --git a/srcpkgs/qt6-pdf/patches/0700-armv7l-neon.patch b/srcpkgs/qt6-pdf/patches/0700-armv7l-neon.patch
deleted file mode 100644
index 5ca1953d2cb35d..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0700-armv7l-neon.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/skia/BUILD.gn
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/skia/BUILD.gn
-@@ -786,7 +786,6 @@ skia_source_set("skia_opts") {
-         # 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-pdf/patches/0750-chromium-musl-cross-no-asm_ptrace_h.patch b/srcpkgs/qt6-pdf/patches/0750-chromium-musl-cross-no-asm_ptrace_h.patch
deleted file mode 100644
index ca7b0150962c7a..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0750-chromium-musl-cross-no-asm_ptrace_h.patch
+++ /dev/null
@@ -1,30 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
-@@ -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>
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc
-@@ -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-pdf/patches/0751-chromium-musl-arm-user_vfp.patch b/srcpkgs/qt6-pdf/patches/0751-chromium-musl-arm-user_vfp.patch
deleted file mode 100644
index d7c18036d503a0..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0751-chromium-musl-arm-user_vfp.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/crashpad/crashpad/util/linux/thread_info.h
-+++ qt6-webengine-6.4.2/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-pdf/patches/0752-chromium-musl-arm-elf_auxv_t.patch b/srcpkgs/qt6-pdf/patches/0752-chromium-musl-arm-elf_auxv_t.patch
deleted file mode 100644
index 52f5f47be831d7..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0752-chromium-musl-arm-elf_auxv_t.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/v8/src/base/cpu.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/v8/src/base/cpu.cc
-@@ -165,6 +165,15 @@ static V8_INLINE void __cpuid(int cpu_in
- 
- #if V8_HOST_ARCH_ARM || V8_HOST_ARCH_ARM64
- 
-+#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() {
-   uint32_t result = 0;
- #if V8_GLIBC_PREREQ(2, 16)
diff --git a/srcpkgs/qt6-pdf/patches/0753-chromium-musl-32-bit-fstat.patch b/srcpkgs/qt6-pdf/patches/0753-chromium-musl-32-bit-fstat.patch
deleted file mode 100644
index 09239a8198417a..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0753-chromium-musl-32-bit-fstat.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/src/3rdparty/chromium/third_party/lss/linux_syscall_support.h
-+++ b/src/3rdparty/chromium/third_party/lss/linux_syscall_support.h
-@@ -293,6 +293,10 @@ struct kernel_rusage {
-   long               ru_nivcsw;
- };
- 
-+#ifdef fstatat64
-+#undef fstatat64
-+#endif
-+
- #if defined(__i386__) || defined(__ARM_EABI__) || defined(__ARM_ARCH_3__) \
-   || defined(__PPC__) || (defined(__s390__) && !defined(__s390x__)) \
-   || defined(__e2k__)
diff --git a/srcpkgs/qt6-pdf/patches/0800-musl-sandbox.patch b/srcpkgs/qt6-pdf/patches/0800-musl-sandbox.patch
new file mode 100644
index 00000000000000..a59c273653012b
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0800-musl-sandbox.patch
@@ -0,0 +1,121 @@
+Source: https://git.alpinelinux.org/aports/tree/community/chromium/musl-sandbox.patch
+musl uses different syscalls from glibc for some functions,
+so the sandbox has to account for that
+--- a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
++++ b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
+@@ -132,6 +132,7 @@ namespace sandbox {
+ ResultExpr RestrictCloneToThreadsAndEPERMFork() {
+   const Arg<unsigned long> flags(0);
+ 
++#ifdef __GLIBC__
+   // TODO(mdempsky): Extend DSL to support (flags & ~mask1) == mask2.
+   const uint64_t kAndroidCloneMask = CLONE_VM | CLONE_FS | CLONE_FILES |
+                                      CLONE_SIGHAND | CLONE_THREAD |
+@@ -146,6 +147,13 @@ ResultExpr RestrictCloneToThreadsAndEPER
+   const BoolExpr android_test =
+       AnyOf(flags == kAndroidCloneMask, flags == kObsoleteAndroidCloneMask,
+             flags == kGlibcPthreadFlags);
++#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;
++#endif
+ 
+   // The following two flags are the two important flags in any vfork-emulating
+   // clone call. EPERM any clone call that contains both of them.
+@@ -155,7 +163,11 @@ ResultExpr RestrictCloneToThreadsAndEPER
+       AnyOf((flags & (CLONE_VM | CLONE_THREAD)) == 0,
+             (flags & kImportantCloneVforkFlags) == kImportantCloneVforkFlags);
+ 
++#ifdef __GLIBC__
+   return If(IsAndroid() ? android_test : glibc_test, Allow())
++#else
++  return If(thread_clone_ok, Allow())
++#endif
+       .ElseIf(is_fork_or_clone_vfork, Error(EPERM))
+       .Else(CrashSIGSYSClone());
+ }
+--- a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
++++ b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
+@@ -439,6 +439,9 @@ bool SyscallSets::IsAllowedProcessStartO
+ #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.
+@@ -451,7 +454,9 @@ bool SyscallSets::IsAllowedProcessStartO
+ #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:
+@@ -549,6 +554,10 @@ bool SyscallSets::IsAllowedAddressSpaceA
+     case __NR_mlock:
+     case __NR_munlock:
+     case __NR_munmap:
++#ifndef __GLIBC__
++    case __NR_mremap:
++    case __NR_membarrier:
++#endif
+       return true;
+     case __NR_madvise:
+     case __NR_mincore:
+@@ -566,7 +575,9 @@ bool SyscallSets::IsAllowedAddressSpaceA
+     case __NR_modify_ldt:
+ #endif
+     case __NR_mprotect:
++#ifdef __GLIBC__
+     case __NR_mremap:
++#endif
+     case __NR_msync:
+     case __NR_munlockall:
+     case __NR_readahead:
+--- a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
++++ b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
+@@ -225,12 +225,26 @@ ResultExpr EvaluateSyscallImpl(int fs_de
+   if (sysno == __NR_getpriority || sysno ==__NR_setpriority)
+     return RestrictGetSetpriority(current_pid);
+ 
++#ifndef __GLIBC__
++  // XXX: hacks for musl sandbox, calls needed?
++  if (sysno == __NR_sched_getparam || sysno == __NR_sched_getscheduler ||
++      sysno == __NR_sched_setscheduler) {
++    return Allow();
++  }
++#endif
++
+   // The scheduling syscalls are used in threading libraries and also heavily in
+   // abseil. See for example https://crbug.com/1370394.
++#ifdef __GLIBC__
+   if (sysno == __NR_sched_getaffinity || sysno == __NR_sched_getparam ||
+       sysno == __NR_sched_getscheduler || sysno == __NR_sched_setscheduler) {
+     return RestrictSchedTarget(current_pid, sysno);
+   }
++#else
++  if (sysno == __NR_sched_getaffinity) {
++    return RestrictSchedTarget(current_pid, sysno);
++  }
++#endif
+ 
+   if (sysno == __NR_getrandom) {
+     return RestrictGetRandom();
+--- a/src/3rdparty/chromium/sandbox/linux/system_headers/linux_syscalls.h
++++ b/src/3rdparty/chromium/sandbox/linux/system_headers/linux_syscalls.h
+@@ -10,6 +10,7 @@
+ #define SANDBOX_LINUX_SYSTEM_HEADERS_LINUX_SYSCALLS_H_
+ 
+ #include "build/build_config.h"
++#include <sys/syscall.h>
+ 
+ #if defined(__x86_64__)
+ #include "sandbox/linux/system_headers/x86_64_linux_syscalls.h"
diff --git a/srcpkgs/qt6-pdf/patches/0010-chromium-musl-tid-caching.patch b/srcpkgs/qt6-pdf/patches/0801-musl-tid-caching.patch
similarity index 92%
rename from srcpkgs/qt6-pdf/patches/0010-chromium-musl-tid-caching.patch
rename to srcpkgs/qt6-pdf/patches/0801-musl-tid-caching.patch
index 8fbf4c0b1ba6f8..5e482667fcfb6e 100644
--- a/srcpkgs/qt6-pdf/patches/0010-chromium-musl-tid-caching.patch
+++ b/srcpkgs/qt6-pdf/patches/0801-musl-tid-caching.patch
@@ -2,13 +2,13 @@ Source: https://git.alpinelinux.org/aports/plain/community/chromium/musl-tid-cac
 the sandbox caching of thread id's only works with glibc
 see: https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/32356
 see: https://gitlab.alpinelinux.org/alpine/aports/-/issues/13579
---
 --- a/src/3rdparty/chromium/sandbox/linux/services/namespace_sandbox.cc
 +++ b/src/3rdparty/chromium/sandbox/linux/services/namespace_sandbox.cc
-@@ -209,6 +209,70 @@
+@@ -208,6 +208,72 @@ base::Process NamespaceSandbox::LaunchPr
    return base::LaunchProcess(argv, launch_options_copy);
  }
  
++#ifndef __GLIBC__
 +#if defined(__aarch64__) || defined(__arm__) || defined(__powerpc__)
 +#define TLS_ABOVE_TP
 +#endif
@@ -72,15 +72,16 @@ see: https://gitlab.alpinelinux.org/alpine/aports/-/issues/13579
 +  pid_t* cached_tid_location = &reinterpret_cast<struct musl_pthread*>(pthread_self())->tid;
 +  *cached_tid_location = real_tid;
 +}
++#endif
 +
  // static
  pid_t NamespaceSandbox::ForkInNewPidNamespace(bool drop_capabilities_in_child) {
    const pid_t pid =
-@@ -226,6 +290,8 @@
+@@ -225,6 +291,9 @@ pid_t NamespaceSandbox::ForkInNewPidName
  #if defined(LIBC_GLIBC)
      MaybeUpdateGlibcTidCache();
--#endif
-+#else
+ #endif
++#ifndef __GLIBC__
 +    MaybeUpdateMuslTidCache();
 +#endif
      return 0;
diff --git a/srcpkgs/qt6-pdf/patches/0802-musl-no-res-ninit-nclose.patch b/srcpkgs/qt6-pdf/patches/0802-musl-no-res-ninit-nclose.patch
new file mode 100644
index 00000000000000..e2a01d946d3c95
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0802-musl-no-res-ninit-nclose.patch
@@ -0,0 +1,20 @@
+--- a/src/3rdparty/chromium/net/dns/public/scoped_res_state.cc
++++ b/src/3rdparty/chromium/net/dns/public/scoped_res_state.cc
+@@ -13,7 +13,7 @@
+ namespace net {
+ 
+ ScopedResState::ScopedResState() {
+-#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_FUCHSIA)
++#ifndef __GLIBC__
+   // Note: res_ninit in glibc always returns 0 and sets RES_INIT.
+   // res_init behaves the same way.
+   memset(&_res, 0, sizeof(_res));
+@@ -30,7 +30,7 @@ ScopedResState::~ScopedResState() {
+   // Prefer res_ndestroy where available.
+ #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD)
+   res_ndestroy(&res_);
+-#else
++#elif defined(__GLIBC__)
+   res_nclose(&res_);
+ #endif  // BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD)
+ 
diff --git a/srcpkgs/qt6-pdf/patches/0803-musl-include.patch b/srcpkgs/qt6-pdf/patches/0803-musl-include.patch
new file mode 100644
index 00000000000000..b8e24762c77aa1
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0803-musl-include.patch
@@ -0,0 +1,10 @@
+--- a/src/3rdparty/chromium/gpu/config/gpu_driver_bug_workarounds.h
++++ b/src/3rdparty/chromium/gpu/config/gpu_driver_bug_workarounds.h
+@@ -5,6 +5,7 @@
+ #ifndef GPU_CONFIG_GPU_DRIVER_BUG_WORKAROUNDS_H_
+ #define GPU_CONFIG_GPU_DRIVER_BUG_WORKAROUNDS_H_
+ 
++#include <cstdint>
+ #include <vector>
+ 
+ #include "build/build_config.h"
diff --git a/srcpkgs/qt6-pdf/patches/0998-cross.patch b/srcpkgs/qt6-pdf/patches/0998-cross.patch
deleted file mode 100644
index 9e62be4b4c64d4..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0998-cross.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/examples/CMakeLists.txt	2023-10-03 21:49:54.000000000 +0200
-+++ -	2023-10-27 11:12:01.573293042 +0200
-@@ -4,7 +4,7 @@
- cmake_minimum_required(VERSION 3.16)
- 
- qt_examples_build_begin(EXTERNAL_BUILD)
--if(NOT CMAKE_CROSSCOMPILING) #QTBUG-86533
-+#if(NOT CMAKE_CROSSCOMPILING) #QTBUG-86533
-     if(TARGET Qt::WebEngineCore)
-         add_subdirectory(webenginequick)
-     endif()
-@@ -17,5 +17,5 @@
-     if(TARGET Qt::PdfWidgets)
-         add_subdirectory(pdfwidgets)
-     endif()
--endif()
-+#endif()
- qt_examples_build_end()
diff --git a/srcpkgs/qt6-pdf/patches/0998-example-cross-build.patch b/srcpkgs/qt6-pdf/patches/0998-example-cross-build.patch
new file mode 100644
index 00000000000000..8fb4c7799857d8
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0998-example-cross-build.patch
@@ -0,0 +1,11 @@
+--- a/examples/CMakeLists.txt
++++ b/examples/CMakeLists.txt
+@@ -4,7 +4,7 @@
+ cmake_minimum_required(VERSION 3.16)
+ 
+ qt_examples_build_begin(EXTERNAL_BUILD)
+-if(NOT CMAKE_CROSSCOMPILING) #QTBUG-86533
++if(TRUE) #QTBUG-86533
+     if(TARGET Qt::WebEngineCore)
+         add_subdirectory(webenginequick)
+     endif()
diff --git a/srcpkgs/qt6-pdf/patches/0999-python3.12.patch b/srcpkgs/qt6-pdf/patches/0999-python3.12.patch
deleted file mode 100644
index 40d4010c82688b..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0999-python3.12.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/fileutil.py	2023-10-03 21:49:54.000000000 +0200
-+++ -	2023-10-13 23:26:56.151025878 +0200
-@@ -3,7 +3,6 @@
- # found in the LICENSE file.
- 
- import errno
--import imp
- import os.path
- import sys
- 
---- a/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/parse/lexer.py	2023-10-03 21:49:54.000000000 +0200
-+++ -	2023-10-13 23:28:56.391987051 +0200
-@@ -2,7 +2,6 @@
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
- 
--import imp
- import os.path
- import sys
-
diff --git a/srcpkgs/qt6-pdf/patches/1000-we-know-what-will-be-supported.patch b/srcpkgs/qt6-pdf/patches/1000-we-know-what-will-be-supported.patch
index d9dd1c753527a3..fcf515071fecc0 100644
--- a/srcpkgs/qt6-pdf/patches/1000-we-know-what-will-be-supported.patch
+++ b/srcpkgs/qt6-pdf/patches/1000-we-know-what-will-be-supported.patch
@@ -1,27 +1,15 @@
---- a/src/3rdparty/chromium/BUILD.gn
-+++ b/src/3rdparty/chromium/BUILD.gn
-@@ -1647,9 +1647,7 @@ if (!is_ios && !is_qtwebengine) {
- }
- 
- # TODO(cassew): Add more OS's that don't support x86.
--is_valid_x86_target =
--    target_os != "ios" && target_os != "mac" &&
--    (target_os != "linux" || use_libfuzzer || !build_with_chromium)
-+is_valid_x86_target = true
- 
- # Note: v8_target_cpu == arm allows using the V8 arm simulator on x86 for fuzzing.
- assert(
 --- a/src/host/CMakeLists.txt
 +++ b/src/host/CMakeLists.txt
-@@ -48,18 +48,3 @@ if(QT_FEATURE_qtpdf_build)
+@@ -50,19 +50,3 @@ if(QT_FEATURE_qtpdf_build)
          DESTINATION ${WEBENGINE_ROOT_BUILD_DIR}/src/pdf/v8_toolchain
      )
  endif()
 -
 -# TODO: this could be run as part of main configure with execute_process
+-# Skip for qtpdf(android)
 -
 -if(CMAKE_CXX_COMPILER_ID STREQUAL GNU AND TEST_architecture_arch STREQUAL "x86_64"
--AND GN_TARGET_CPU STREQUAL "arm")
+-    AND GN_TARGET_CPU STREQUAL "arm" AND NOT MINGW AND NOT ANDROID)
 -    try_compile(
 -        has32HostCompiler
 -        "${CMAKE_CURRENT_BINARY_DIR}/config.tests/hostcompiler"
diff --git a/srcpkgs/qt6-pdf/patches/Partial-migration-from-imp-to-importlib.patch b/srcpkgs/qt6-pdf/patches/Partial-migration-from-imp-to-importlib.patch
deleted file mode 100644
index 46cc88f9bf1770..00000000000000
--- a/srcpkgs/qt6-pdf/patches/Partial-migration-from-imp-to-importlib.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From cbf5f7ad619a967bd54482e1d1df36d80b28145a Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk@redhat.com>
-Date: Thu, 13 Jul 2023 12:18:00 +0200
-Subject: [PATCH] Partial migration from imp to importlib
-
----
- .../resources/protobufs/binary_proto_generator.py           | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py b/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py
-index 2a1802d..ba67251 100755
---- a/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py
-+++ b/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py
-@@ -9,7 +9,7 @@
- """
- from __future__ import print_function
- import abc
--import imp
-+from importlib import util
- import optparse
- import os
- import re
-@@ -68,7 +68,9 @@ class GoogleProtobufModuleImporter:
-       raise ImportError(fullname)
- 
-     filepath = self._fullname_to_filepath(fullname)
--    return imp.load_source(fullname, filepath)
-+    spec = util.spec_from_file_location(fullname, filepath)
-+    loaded = util.module_from_spec(spec)
-+    return spec.loader.exec_module(loaded)
- 
- class BinaryProtoGenerator:
- 
--- 
-2.41.0
-
diff --git a/srcpkgs/qt6-pdf/patches/fix-libxml2-2.12.patch b/srcpkgs/qt6-pdf/patches/fix-libxml2-2.12.patch
deleted file mode 100644
index f85ee4d01ff64f..00000000000000
--- a/srcpkgs/qt6-pdf/patches/fix-libxml2-2.12.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-Based on: https://github.com/chromium/chromium/commit/871f8ae9b65ce2679b0bc0be36902d65edf0c1e4
-
-diff --git a/third_party/blink/renderer/core/xml/xslt_processor.h b/third_party/blink/renderer/core/xml/xslt_processor.h
-index d53835e9675793e..2eaea31ed29b90f 100644
---- a/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor.h
-+++ b/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor.h
-@@ -79,7 +79,11 @@ class XSLTProcessor final : public Scrip
- 
-   void reset();
- 
-+#if LIBXML_VERSION >= 21200
-+  static void ParseErrorFunc(void* user_data, const xmlError*);
-+#else
-   static void ParseErrorFunc(void* user_data, xmlError*);
-+#endif
-   static void GenericErrorFunc(void* user_data, const char* msg, ...);
- 
-   // Only for libXSLT callbacks
-diff --git a/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc b/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc
-index 133e0b3355d2f09..f424077089da87d 100644
---- a/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc
-+++ b/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc
-@@ -60,7 +60,11 @@ void XSLTProcessor::GenericErrorFunc(voi
-   // It would be nice to do something with this error message.
- }
- 
-+#if LIBXML_VERSION >= 21200
-+void XSLTProcessor::ParseErrorFunc(void* user_data, const xmlError* error) {
-+#else
- void XSLTProcessor::ParseErrorFunc(void* user_data, xmlError* error) {
-+#endif
-   FrameConsole* console = static_cast<FrameConsole*>(user_data);
-   if (!console)
-     return;
diff --git a/srcpkgs/qt6-pdf/patches/pipewire-fcntl-call.patch b/srcpkgs/qt6-pdf/patches/pipewire-fcntl-call.patch
deleted file mode 100644
index a139a7e8a532ce..00000000000000
--- a/srcpkgs/qt6-pdf/patches/pipewire-fcntl-call.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Patch-Source: https://webrtc-review.googlesource.com/c/src/+/305120
---
-diff --git a/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc b/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc
-index 5878180..b2ad7ad 100644
---- a/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc
-+++ b/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc
-@@ -452,8 +452,8 @@
-     PipeWireThreadLoopLock thread_loop_lock(pw_main_loop_);
- 
-     if (fd >= 0) {
--      pw_core_ = pw_context_connect_fd(
--          pw_context_, fcntl(fd, F_DUPFD_CLOEXEC), nullptr, 0);
-+      pw_core_ = pw_context_connect_fd(
-+          pw_context_, fcntl(fd, F_DUPFD_CLOEXEC, 0), nullptr, 0);
-     } else {
-       pw_core_ = pw_context_connect(pw_context_, nullptr, 0);
-     }
-
diff --git a/srcpkgs/qt6-pdf/template b/srcpkgs/qt6-pdf/template
index ecda84afac1310..a7f61ea0b0aa5d 100644
--- a/srcpkgs/qt6-pdf/template
+++ b/srcpkgs/qt6-pdf/template
@@ -1,7 +1,7 @@
 # Template file for 'qt6-pdf'
 pkgname=qt6-pdf
-version=6.6.0
-revision=3
+version=6.7.2
+revision=1
 build_style=cmake
 configure_args="-DQT_FEATURE_qtpdf_build=ON
  -DQT_FEATURE_qtpdf_widgets_build=ON
@@ -10,7 +10,8 @@ configure_args="-DQT_FEATURE_qtpdf_build=ON
  -DQT_BUILD_EXAMPLES=ON"
 hostmakedepends="qt6-base-devel perl pkg-config nodejs python3-html5lib
  qt6-declarative-host-tools gperf bison flex nss-devel"
-makedepends="qt6-base-devel qt6-declarative-devel qt6-svg-devel zlib-devel
+makedepends="qt6-base-private-devel qt6-declarative-private-devel
+ qt6-svg-devel zlib-devel
  pciutils-devel opus-devel libxslt-devel libxml2-devel ffmpeg-devel
  lcms2-devel libwebp-devel icu-devel re2-devel snappy-devel libevent-devel
  libvpx-devel minizip-devel tiff-devel libpng-devel harfbuzz-devel
@@ -21,7 +22,7 @@ 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/official_releases/qt/${version%.*}/${version}/submodules/qtwebengine-everywhere-src-${version}.tar.xz"
-checksum=d5dc9ff05a2c57adbf99cbf0c7cb6f19527f67216caf627b0cc160a1d253b780
+checksum=c7755875594d8be382b07bf3634d44fd77012805794d8b588891709a6405ffd1
 
 if [ "$XBPS_LIBC" = "musl" ]; then
 	hostmakedepends+=" musl-legacy-compat"
@@ -62,6 +63,7 @@ if [ "$_have_webengine" = yes ]; then
 	 -DQT_FEATURE_webengine_system_libevent=ON
 	 -DQT_FEATURE_webengine_system_gn=ON
 	 -DQT_FEATURE_webengine_system_icu=ON
+	 -DQT_FEATURE_webengine_system_re2=ON
 	 -DQT_FEATURE_webengine_webrtc_pipewire=ON
 	 -DQT_FEATURE_webengine_embedded_build=OFF
 	 -DQT_FEATURE_webengine_proprietary_codecs=ON"
@@ -167,6 +169,8 @@ pre_install() {
 
 post_install() {
 	local _file
+	rm -rf "${DESTDIR}/usr/tests"
+	rm -f "${DESTDIR}/usr/lib/qt6/bin/testbrowser"
 	find "${DESTDIR}"/usr/lib/qt6/examples \
 		-path '*/lib/qt6/**/lib/qt6/*' -type f |
 	while read _file; do

From 2c063c3dc4d13a8029052f688f26a1558163291b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:30 +0700
Subject: [PATCH 25/52] qt6-charts: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-charts/template b/srcpkgs/qt6-charts/template
index 4cd9fd60ed0220..3e42c4082ed5f9 100644
--- a/srcpkgs/qt6-charts/template
+++ b/srcpkgs/qt6-charts/template
@@ -1,16 +1,16 @@
 # Template file for 'qt6-charts'
 pkgname=qt6-charts
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-declarative-host-tools"
-makedepends="qt6-declarative-devel"
+makedepends="qt6-declarative-private-devel qt6-base-private-devel"
 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=e6beabcdc70c7719818459d2b2db63d7b0b5adc5572b8802368b698f64292cf5
+checksum=00f6a437458b7f2c4e81d748dbe2a077567a9e6ad8d8e3820b36c39dc5279bda
 
 pre_check() {
 	export QML2_IMPORT_PATH="$wrksrc/build/lib${XBPS_TARGET_WORDSIZE}/qt6/qml"

From ec6ebbffd7cc3a2bbb165227f7cb5050726d9fd1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:31 +0700
Subject: [PATCH 26/52] qt6-connectivity: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-connectivity/template b/srcpkgs/qt6-connectivity/template
index 312291704dde25..a37892b61f2d9f 100644
--- a/srcpkgs/qt6-connectivity/template
+++ b/srcpkgs/qt6-connectivity/template
@@ -1,16 +1,22 @@
 # Template file for 'qt6-connectivity'
 pkgname=qt6-connectivity
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
-hostmakedepends="perl qt6-declarative-host-tools"
-makedepends="qt6-declarative-devel"
+configure_args="-DQT_FEATURE_pcsclite=ON"
+hostmakedepends="perl qt6-declarative-host-tools pkg-config"
+makedepends="qt6-declarative-private-devel libbluetooth-devel pcsclite-devel
+ qt6-base-private-devel"
 short_desc="Cross-platform application and UI framework - Connectivity"
 maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 license="GPL-3.0-only"
 homepage="https://qt.io/"
 distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtconnectivity-everywhere-src-${version}.tar.xz"
-checksum=1c29c26247c28ef19b9ca87c38b4d61a1f94ee9021897962e0d5ba215f1c4010
+checksum=8ed321b242f0e956473a295fa31670271f9b3acb797508644cb740f89f6c08e8
+
+do_check() {
+	ctest -E tst_qlowenergycontroller
+}
 
 qt6-connectivity-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision}

From 6dd15f1408e31cffd691caf4ba34d8715ca33d2d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:31 +0700
Subject: [PATCH 27/52] qt6-imageformats: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-imageformats/template b/srcpkgs/qt6-imageformats/template
index f550107e80d0e1..5a6c89ee07084c 100644
--- a/srcpkgs/qt6-imageformats/template
+++ b/srcpkgs/qt6-imageformats/template
@@ -1,6 +1,6 @@
 # Template file for 'qt6-imageformats'
 pkgname=qt6-imageformats
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base"
@@ -10,4 +10,4 @@ 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=e1542cb50176e237809895c6549598c08587c63703d100be54ac2d806834e384
+checksum=e1a1d8785fae67d16ad0a443b01d5f32663a6b68d275f1806ebab257485ce5d6

From a6ea9d7aecc59185a17c60b4763e2a333142b87c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:31 +0700
Subject: [PATCH 28/52] qt6-location: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-location/template b/srcpkgs/qt6-location/template
index 985a82408e5e52..99708c66321a37 100644
--- a/srcpkgs/qt6-location/template
+++ b/srcpkgs/qt6-location/template
@@ -1,16 +1,17 @@
 # Template file for 'qt6-location'
 pkgname=qt6-location
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base qt6-declarative-host-tools"
-makedepends="qt6-serialport-devel qt6-declarative-devel qt6-position-devel"
+makedepends="qt6-serialport-devel qt6-declarative-private-devel qt6-position-devel
+ qt6-base-private-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/official_releases/qt/${version%.*}/${version}/submodules/qtlocation-everywhere-src-${version}.tar.xz"
-checksum=f5968be76108bf22af334b403027cf0a859284cb824250e728bb8daca2d70794
+checksum=f232da58bf1189b69f1f7029417ddfeffcfb801b275aedc720e38244f88a485d
 
 pre_check() {
 	export QML2_IMPORT_PATH="$wrksrc/build/lib${XBPS_TARGET_WORDSIZE}/qt6/qml"

From 66f69fbf72e4d8196a1b85b0e5b51c23960616ff Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:31 +0700
Subject: [PATCH 29/52] qt6-lottie: update to 6.7.2.

---
 srcpkgs/qt6-lottie-private-devel |  1 +
 srcpkgs/qt6-lottie/template      | 22 +++++++++++++++++++---
 2 files changed, 20 insertions(+), 3 deletions(-)
 create mode 120000 srcpkgs/qt6-lottie-private-devel

diff --git a/srcpkgs/qt6-lottie-private-devel b/srcpkgs/qt6-lottie-private-devel
new file mode 120000
index 00000000000000..ba915c5589b897
--- /dev/null
+++ b/srcpkgs/qt6-lottie-private-devel
@@ -0,0 +1 @@
+qt6-lottie
\ No newline at end of file
diff --git a/srcpkgs/qt6-lottie/template b/srcpkgs/qt6-lottie/template
index f5d8c3636e8914..8495153d4b5148 100644
--- a/srcpkgs/qt6-lottie/template
+++ b/srcpkgs/qt6-lottie/template
@@ -1,21 +1,23 @@
 # Template file for 'qt6-lottie'
 pkgname=qt6-lottie
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base qt6-declarative-host-tools"
-makedepends="qt6-declarative-devel"
+makedepends="qt6-declarative-private-devel qt6-base-private-devel"
 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=1d98b45107a4b9a6337bc7ac37b9e54cdaa68110f814d93eecc8fbf8d338f84f
+checksum=d9afbc9358d352a4e521d4693d5bdad6a004272b6e8a9ec7a9f851700fe3f10e
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args="-DQT_BUILD_TESTS=ON"
 fi
 
+subpackages="qt6-lottie-private-devel qt6-lottie-devel"
+
 pre_check() {
 	export QML2_IMPORT_PATH="$wrksrc/build/lib${XBPS_TARGET_WORDSIZE}/qt6/qml"
 }
@@ -24,6 +26,20 @@ post_install() {
 	rm -rf ${DESTDIR}/usr/tests
 }
 
+qt6-lottie-private-devel_package() {
+	depends="qt6-lottie-devel>=${version}_${revision}"
+	short_desc+=" - private development files"
+	pkg_install() {
+		for dir in $(cd ${DESTDIR} && find usr/include -type d -name private); do
+			vmove "$dir"
+		done
+		vmove "usr/lib/cmake/*Private"
+		vmove "usr/lib/qt6/metatypes/*private_*_metatypes.json"
+		vmove "usr/lib/qt6/mkspecs/modules/*_private.pri"
+		vmove "usr/lib/qt6/modules/*Private.json"
+	}
+}
+
 qt6-lottie-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision}"
 	short_desc+=" - development files"

From 1f4ab0426726b61cce5b09192ab60cb3046a7e43 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:31 +0700
Subject: [PATCH 30/52] qt6-networkauth: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-networkauth/template b/srcpkgs/qt6-networkauth/template
index 1bbd6b97803475..65f468da81df72 100644
--- a/srcpkgs/qt6-networkauth/template
+++ b/srcpkgs/qt6-networkauth/template
@@ -1,16 +1,16 @@
 # Template file for 'qt6-networkauth'
 pkgname=qt6-networkauth
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base"
-makedepends="qt6-base-devel qt6-plugin-networkinformation"
+makedepends="qt6-base-private-devel qt6-plugin-networkinformation"
 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=20d5c0746c00eb3333f17c9869296d0acd0eed93518ea2734b98405cc6cc8830
+checksum=7f09824fcfe589eb32260c305ff9a126fe3bf93be218d372e8e9c10e212df470
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args="-DQT_BUILD_TESTS=ON"

From 940d7d39a1b02823186e54f581a4b424153b1404 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:31 +0700
Subject: [PATCH 31/52] qt6-position: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-position/template b/srcpkgs/qt6-position/template
index 32c4093e1645dd..61e463e81dd05a 100644
--- a/srcpkgs/qt6-position/template
+++ b/srcpkgs/qt6-position/template
@@ -1,16 +1,17 @@
 # Template file for 'qt6-position'
 pkgname=qt6-position
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base qt6-declarative-host-tools"
-makedepends="qt6-serialport-devel qt6-declarative-devel"
+makedepends="qt6-serialport-devel qt6-declarative-private-devel
+ qt6-base-private-devel"
 short_desc="Cross-platform application and UI framework - position"
 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/qtpositioning-everywhere-src-${version}.tar.xz"
-checksum=8d6520fa3c759ed33eaea7cb1aa7e1e7ec999f828e496a6c592847d61f0fa539
+checksum=020009f0aa8f6b1042963a45b6e19f2784cc937949cdb673f3b876153e087b1c
 
 pre_check() {
 	export QML2_IMPORT_PATH="$wrksrc/build/lib${XBPS_TARGET_WORDSIZE}/qt6/qml"

From 3f7e7029e8341dbcc1c86872eacb8c2d2043151e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:31 +0700
Subject: [PATCH 32/52] qt6-remoteobjects: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-remoteobjects/template b/srcpkgs/qt6-remoteobjects/template
index 51de5ebd7ab993..1f6aa61dc8831c 100644
--- a/srcpkgs/qt6-remoteobjects/template
+++ b/srcpkgs/qt6-remoteobjects/template
@@ -1,10 +1,11 @@
 # Template file for 'qt6-remoteobjects'
 pkgname=qt6-remoteobjects
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-declarative-host-tools pkg-config"
-makedepends="qt6-declarative-devel qt6-connectivity-devel"
+makedepends="qt6-declarative-private-devel qt6-connectivity-devel
+ qt6-base-private-devel"
 # Not a strict dependency, but it's 2022, everyone should use TLS
 depends="qt6-plugin-tls-openssl"
 checkdepends="$depends"
@@ -13,7 +14,7 @@ maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 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/qtremoteobjects-everywhere-src-${version}.tar.xz"
-checksum=261194e35bb9420225f095c58a5a549686797a3d2b7ea6f0d582d7d681f1f76b
+checksum=0b906b81aa7d6f4e47d4a298da67894433f3096a06f4c4237788c1b2cb9b7483
 
 if [ "$CROSS_BUILD" ]; then
 	hostmakedepends+=" qt6-remoteobjects"

From de8406b4216332c56668075363358b52ea5843b2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:32 +0700
Subject: [PATCH 33/52] qt6-scxml: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-scxml/template b/srcpkgs/qt6-scxml/template
index 1aaca906de21f0..a5dfb1f85357de 100644
--- a/srcpkgs/qt6-scxml/template
+++ b/srcpkgs/qt6-scxml/template
@@ -1,20 +1,21 @@
 # Template file for 'qt6-scxml'
 pkgname=qt6-scxml
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
+configure_args="-DQT_FEATURE_scxml_ecmascriptdatamodel=ON"
 hostmakedepends="perl qt6-declarative-host-tools"
-makedepends="qt6-declarative-devel"
+makedepends="qt6-declarative-private-devel qt6-base-private-devel"
 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=57ecd0db5d8b063d0334c4b21461585b4904d4884c88de125bd72e967e8a1043
+checksum=20ecf93506d48f27b492ad3dd9d88830e08d642faec3071ce53396a8ae05c86f
 
 subpackages="qt6-scxml-tools qt6-scxml-devel"
 if [ "$CROSS_BUILD" ]; then
-	configure_args="-DQT_FORCE_BUILD_TOOLS=true"
+	configure_args+=" -DQT_FORCE_BUILD_TOOLS=true"
 	hostmakedepends+=" qt6-scxml-tools"
 fi
 

From 5bff771ba464e5bd778e5b14115e89fde1024d2c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:32 +0700
Subject: [PATCH 34/52] qt6-sensors: update to 6.7.2.

---
 srcpkgs/qt6-sensors/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/qt6-sensors/template b/srcpkgs/qt6-sensors/template
index d835f29ca091be..8dbfd92079ba46 100644
--- a/srcpkgs/qt6-sensors/template
+++ b/srcpkgs/qt6-sensors/template
@@ -1,16 +1,16 @@
 # Template file for 'qt6-sensors'
 pkgname=qt6-sensors
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-declarative-host-tools pkg-config"
-makedepends="qt6-declarative-devel qt6-svg-devel"
+makedepends="qt6-declarative-private-devel qt6-svg-devel qt6-base-private-devel"
 short_desc="Cross-platform application and UI framework - Sensors"
 maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 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/qtsensors-everywhere-src-${version}.tar.xz"
-checksum=28f0be5d4eac103ba3bb660ea61806d0e193c1fab949d1c95f2cb7cb39d84498
+checksum=ead1dec787c56ed4dc02ed810af54ff1e1f6875cb5cc2506c74eeb9554e6bb59
 
 post_install() {
 	rm -rf ${DESTDIR}/usr/tests

From f66bdd7641941ed7d5563701fbc9ee9a4a4542ba Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:32 +0700
Subject: [PATCH 35/52] qt6-serialport: update to 6.7.2.

---
 srcpkgs/qt6-serialport/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/qt6-serialport/template b/srcpkgs/qt6-serialport/template
index 5c802fe7a6e263..491e1463daa366 100644
--- a/srcpkgs/qt6-serialport/template
+++ b/srcpkgs/qt6-serialport/template
@@ -1,16 +1,16 @@
 # Template file for 'qt6-serialport'
 pkgname=qt6-serialport
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base pkg-config"
-makedepends="qt6-base-devel"
+makedepends="qt6-base-private-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/official_releases/qt/${version%.*}/${version}/submodules/qtserialport-everywhere-src-${version}.tar.xz"
-checksum=ecfcbbf1c47a67ff599a409bf7682fed416f797860c01c934f5a78c336da4065
+checksum=21c34cd1161cb5197bcec662d26a17647b59b6fdff5c364576883c42dbd3b4fc
 
 qt6-serialport-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision} qt6-base-devel>=${version}_1"

From f8acb205e0d2f3357f4df97bb09755ea42b9b7d3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:32 +0700
Subject: [PATCH 36/52] qt6-speech: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-speech/template b/srcpkgs/qt6-speech/template
index 7596a055db5dbd..776995f2567c75 100644
--- a/srcpkgs/qt6-speech/template
+++ b/srcpkgs/qt6-speech/template
@@ -1,17 +1,17 @@
 # Template file for 'qt6-speech'
 pkgname=qt6-speech
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl pkg-config qt6-declarative-host-tools"
-makedepends="qt6-base-devel qt6-multimedia-devel qt6-declarative-devel
- flite-devel speech-dispatcher-devel alsa-lib-devel"
+makedepends="qt6-base-private-devel qt6-declarative-private-devel
+ qt6-multimedia-devel flite-devel speech-dispatcher-devel alsa-lib-devel"
 short_desc="Cross-platform application and UI framework (QT6) - Speech component"
 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://www.qt.io"
 distfiles="https://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtspeech-everywhere-src-${version}.tar.xz"
-checksum=969bdbff826808f0cfd80e8f2e357f00174489f30d9f895390cf59814abe9f9c
+checksum=cc8c769404e3e49713be304a73f936890a1ef2f88d590732785f34692a4814ce
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args="-DQT_BUILD_TESTS=ON"

From cde0dd9d7cfc6c628dcb44e3b2d445b232736bf9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:32 +0700
Subject: [PATCH 37/52] qt6-virtualkeyboard: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-virtualkeyboard/template b/srcpkgs/qt6-virtualkeyboard/template
index f30ef911b70466..5f06025c759358 100644
--- a/srcpkgs/qt6-virtualkeyboard/template
+++ b/srcpkgs/qt6-virtualkeyboard/template
@@ -1,16 +1,17 @@
 # Template file for 'qt6-virtualkeyboard'
 pkgname=qt6-virtualkeyboard
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl pkg-config qt6-declarative-host-tools"
-makedepends="qt6-declarative-devel qt6-svg-devel hunspell-devel"
+makedepends="qt6-declarative-private-devel qt6-svg-devel hunspell-devel
+ qt6-base-private-devel"
 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=2784db43f514bfd3a2ce0e79e0096deea95a3866254d376a9134bc512bfa777b
+checksum=320664b55a0960ff79c1b822dcf6e8cebe3e08b791147d41b570996d81ce180f
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args="-DQT_BUILD_TESTS=ON"

From 08f4000ce63ac7ff2f5a80e3d776755ec8eb2115 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:32 +0700
Subject: [PATCH 38/52] qt6-websockets: update to 6.7.2.

---
 srcpkgs/qt6-websockets/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/qt6-websockets/template b/srcpkgs/qt6-websockets/template
index 176315c28772ad..4b816db33bfba7 100644
--- a/srcpkgs/qt6-websockets/template
+++ b/srcpkgs/qt6-websockets/template
@@ -1,10 +1,10 @@
 # Template file for 'qt6-websockets'
 pkgname=qt6-websockets
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base qt6-declarative-host-tools"
-makedepends="qt6-base-devel qt6-declarative-devel"
+makedepends="qt6-base-private-devel qt6-declarative-private-devel"
 depends="qt6-plugin-tls-openssl"
 checkdepends="$depends"
 short_desc="Cross-platform application and UI framework - websockets"
@@ -12,7 +12,7 @@ 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/qtwebsockets-everywhere-src-${version}.tar.xz"
-checksum=2e05b15c0c6e82c484cf3a4a39a3e3e484a6c8f72bc31ee5cf615d52d07df30e
+checksum=5bde4af6ec9ce8c8632b782ab77b82d910721be2c714e6d38902521bcd1d215f
 
 do_check() {
 	cd build

From 166729d9829209d3c28323aa0c89ba47b45ebcb1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:32 +0700
Subject: [PATCH 39/52] qt6-webview: update to 6.7.2.

---
 srcpkgs/qt6-webview/template | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/qt6-webview/template b/srcpkgs/qt6-webview/template
index cc2273052907be..abdfa65829429d 100644
--- a/srcpkgs/qt6-webview/template
+++ b/srcpkgs/qt6-webview/template
@@ -1,16 +1,20 @@
 # Template file for 'qt6-webview'
 pkgname=qt6-webview
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="qt6-base qt6-declarative-host-tools"
-makedepends="qt6-base-devel qt6-declarative-devel qt6-webengine-devel"
+makedepends="qt6-base-private-devel qt6-declarative-private-devel qt6-webengine-devel"
 short_desc="Cross-platform application and UI framework - WebView"
 maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 license="GPL-3.0-only, GPL-2.0-only, LGPL-3.0-only"
 homepage="https://www.qt.io"
 distfiles="https://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtwebview-everywhere-src-${version}.tar.xz"
-checksum=a5a48d9b5dfac60b66a737f844dc57de311de9d154fe10ccd8ec498506753392
+checksum=4ce1096903d4fec39bfcd95d4015acbf105eddf66a384303cb0fe899dd24e4fe
+
+if [ "$XBPS_WORDSIZE$XBPS_WORDSIZE" != "64$XBPS_TARGET_WORDSIZE" ]; then
+	broken="no qt6-webengine"
+fi
 
 qt6-webview-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision}"

From a5c015aea9d69972447e7eb1aec2b2c6904f1b11 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:33 +0700
Subject: [PATCH 40/52] python3-pyqt6: update to 6.7.0.

---
 ...nectivity-devel => python3-pyqt6-bindings} |   0
 srcpkgs/python3-pyqt6-core-devel              |   1 -
 srcpkgs/python3-pyqt6-dbus-devel              |   1 -
 srcpkgs/python3-pyqt6-declarative-devel       |   1 -
 srcpkgs/python3-pyqt6-gui-devel               |   1 -
 srcpkgs/python3-pyqt6-multimedia-devel        |   1 -
 srcpkgs/python3-pyqt6-network-devel           |   1 -
 srcpkgs/python3-pyqt6-opengl-widgets-devel    |   1 -
 srcpkgs/python3-pyqt6-pdf-devel               |   1 -
 srcpkgs/python3-pyqt6-position-devel          |   1 -
 srcpkgs/python3-pyqt6-printsupport-devel      |   1 -
 srcpkgs/python3-pyqt6-quick3d-devel           |   1 -
 srcpkgs/python3-pyqt6-remoteobjects-devel     |   1 -
 srcpkgs/python3-pyqt6-sensors-devel           |   1 -
 srcpkgs/python3-pyqt6-serialport-devel        |   1 -
 srcpkgs/python3-pyqt6-speech-devel            |   1 -
 srcpkgs/python3-pyqt6-sql-devel               |   1 -
 srcpkgs/python3-pyqt6-svg-devel               |   1 -
 srcpkgs/python3-pyqt6-test-devel              |   1 -
 srcpkgs/python3-pyqt6-tools-devel             |   1 -
 srcpkgs/python3-pyqt6-webchannel-devel        |   1 -
 srcpkgs/python3-pyqt6-websockets-devel        |   1 -
 srcpkgs/python3-pyqt6-widgets-devel           |   1 -
 srcpkgs/python3-pyqt6-xml-devel               |   1 -
 srcpkgs/python3-pyqt6/template                | 339 +++---------------
 25 files changed, 58 insertions(+), 304 deletions(-)
 rename srcpkgs/{python3-pyqt6-connectivity-devel => python3-pyqt6-bindings} (100%)
 delete mode 120000 srcpkgs/python3-pyqt6-core-devel
 delete mode 120000 srcpkgs/python3-pyqt6-dbus-devel
 delete mode 120000 srcpkgs/python3-pyqt6-declarative-devel
 delete mode 120000 srcpkgs/python3-pyqt6-gui-devel
 delete mode 120000 srcpkgs/python3-pyqt6-multimedia-devel
 delete mode 120000 srcpkgs/python3-pyqt6-network-devel
 delete mode 120000 srcpkgs/python3-pyqt6-opengl-widgets-devel
 delete mode 120000 srcpkgs/python3-pyqt6-pdf-devel
 delete mode 120000 srcpkgs/python3-pyqt6-position-devel
 delete mode 120000 srcpkgs/python3-pyqt6-printsupport-devel
 delete mode 120000 srcpkgs/python3-pyqt6-quick3d-devel
 delete mode 120000 srcpkgs/python3-pyqt6-remoteobjects-devel
 delete mode 120000 srcpkgs/python3-pyqt6-sensors-devel
 delete mode 120000 srcpkgs/python3-pyqt6-serialport-devel
 delete mode 120000 srcpkgs/python3-pyqt6-speech-devel
 delete mode 120000 srcpkgs/python3-pyqt6-sql-devel
 delete mode 120000 srcpkgs/python3-pyqt6-svg-devel
 delete mode 120000 srcpkgs/python3-pyqt6-test-devel
 delete mode 120000 srcpkgs/python3-pyqt6-tools-devel
 delete mode 120000 srcpkgs/python3-pyqt6-webchannel-devel
 delete mode 120000 srcpkgs/python3-pyqt6-websockets-devel
 delete mode 120000 srcpkgs/python3-pyqt6-widgets-devel
 delete mode 120000 srcpkgs/python3-pyqt6-xml-devel

diff --git a/srcpkgs/python3-pyqt6-connectivity-devel b/srcpkgs/python3-pyqt6-bindings
similarity index 100%
rename from srcpkgs/python3-pyqt6-connectivity-devel
rename to srcpkgs/python3-pyqt6-bindings
diff --git a/srcpkgs/python3-pyqt6-core-devel b/srcpkgs/python3-pyqt6-core-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-core-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-dbus-devel b/srcpkgs/python3-pyqt6-dbus-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-dbus-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-declarative-devel b/srcpkgs/python3-pyqt6-declarative-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-declarative-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-gui-devel b/srcpkgs/python3-pyqt6-gui-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-gui-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-multimedia-devel b/srcpkgs/python3-pyqt6-multimedia-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-multimedia-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-network-devel b/srcpkgs/python3-pyqt6-network-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-network-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-opengl-widgets-devel b/srcpkgs/python3-pyqt6-opengl-widgets-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-opengl-widgets-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-pdf-devel b/srcpkgs/python3-pyqt6-pdf-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-pdf-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-position-devel b/srcpkgs/python3-pyqt6-position-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-position-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-printsupport-devel b/srcpkgs/python3-pyqt6-printsupport-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-printsupport-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-quick3d-devel b/srcpkgs/python3-pyqt6-quick3d-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-quick3d-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-remoteobjects-devel b/srcpkgs/python3-pyqt6-remoteobjects-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-remoteobjects-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-sensors-devel b/srcpkgs/python3-pyqt6-sensors-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-sensors-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-serialport-devel b/srcpkgs/python3-pyqt6-serialport-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-serialport-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-speech-devel b/srcpkgs/python3-pyqt6-speech-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-speech-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-sql-devel b/srcpkgs/python3-pyqt6-sql-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-sql-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-svg-devel b/srcpkgs/python3-pyqt6-svg-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-svg-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-test-devel b/srcpkgs/python3-pyqt6-test-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-test-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-tools-devel b/srcpkgs/python3-pyqt6-tools-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-tools-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-webchannel-devel b/srcpkgs/python3-pyqt6-webchannel-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-webchannel-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-websockets-devel b/srcpkgs/python3-pyqt6-websockets-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-websockets-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-widgets-devel b/srcpkgs/python3-pyqt6-widgets-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-widgets-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-xml-devel b/srcpkgs/python3-pyqt6-xml-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-xml-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6/template b/srcpkgs/python3-pyqt6/template
index 151ba6a554ed7b..de4fbdf91b1a59 100644
--- a/srcpkgs/python3-pyqt6/template
+++ b/srcpkgs/python3-pyqt6/template
@@ -1,10 +1,11 @@
 # Template file for 'python3-pyqt6'
 pkgname=python3-pyqt6
-version=6.6.1
-revision=2
+version=6.7.0
+revision=1
 build_style=sip-build
 build_helper=qemu
-configure_args="--confirm-license --dbus $XBPS_CROSS_BASE/usr/include/dbus-1.0"
+configure_args="--confirm-license --dbus $XBPS_CROSS_BASE/usr/include/dbus-1.0
+ --verbose"
 hostmakedepends="qt6-base python3-dbus python3-PyQt-builder pkg-config"
 makedepends="qt6-base-devel qt6-declarative-devel qt6-tools-devel
  qt6-webchannel-devel qt6-multimedia-devel qt6-location-devel
@@ -17,33 +18,33 @@ maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 license="GPL-3.0-only"
 homepage="https://www.riverbankcomputing.com/software/pyqt/"
 distfiles="$PYPI_SITE/P/PyQt6/PyQt6-$version.tar.gz"
-checksum=9f158aa29d205142c56f0f35d07784b8df0be28378d20a97bcda8bd64ffd0379
+checksum=3d31b2c59dc378ee26e16586d9469842483588142fc377280aad22aaf2fa6235
 lib32disabled=yes
 
-subpackages="python3-pyqt6-core-devel
+subpackages="python3-pyqt6-bindings
  python3-pyqt6-devel python3-pyqt6-devel-tools
- python3-pyqt6-connectivity python3-pyqt6-connectivity-devel
- python3-pyqt6-dbus python3-pyqt6-dbus-devel
- python3-pyqt6-declarative python3-pyqt6-declarative-devel
- python3-pyqt6-gui python3-pyqt6-gui-devel
- python3-pyqt6-multimedia python3-pyqt6-multimedia-devel
- python3-pyqt6-network python3-pyqt6-network-devel
- python3-pyqt6-opengl-widgets python3-pyqt6-opengl-widgets-devel
- python3-pyqt6-position python3-pyqt6-position-devel
- python3-pyqt6-printsupport python3-pyqt6-printsupport-devel
- python3-pyqt6-quick3d python3-pyqt6-quick3d-devel
- python3-pyqt6-remoteobjects python3-pyqt6-remoteobjects-devel
- python3-pyqt6-sensors python3-pyqt6-sensors-devel
- python3-pyqt6-serialport python3-pyqt6-serialport-devel
- python3-pyqt6-speech python3-pyqt6-speech-devel
- python3-pyqt6-sql python3-pyqt6-sql-devel
- python3-pyqt6-svg python3-pyqt6-svg-devel
- python3-pyqt6-test python3-pyqt6-test-devel
- python3-pyqt6-tools python3-pyqt6-tools-devel
- python3-pyqt6-websockets python3-pyqt6-websockets-devel
- python3-pyqt6-webchannel python3-pyqt6-webchannel-devel
- python3-pyqt6-widgets python3-pyqt6-widgets-devel
- python3-pyqt6-xml python3-pyqt6-xml-devel
+ python3-pyqt6-connectivity
+ python3-pyqt6-dbus
+ python3-pyqt6-declarative
+ python3-pyqt6-gui
+ python3-pyqt6-multimedia
+ python3-pyqt6-network
+ python3-pyqt6-opengl-widgets
+ python3-pyqt6-position
+ python3-pyqt6-printsupport
+ python3-pyqt6-quick3d
+ python3-pyqt6-remoteobjects
+ python3-pyqt6-sensors
+ python3-pyqt6-serialport
+ python3-pyqt6-speech
+ python3-pyqt6-sql
+ python3-pyqt6-svg
+ python3-pyqt6-test
+ python3-pyqt6-tools
+ python3-pyqt6-websockets
+ python3-pyqt6-webchannel
+ python3-pyqt6-widgets
+ python3-pyqt6-xml
  "
 
 case "$XBPS_TARGET_MACHINE" in
@@ -52,18 +53,42 @@ case "$XBPS_TARGET_MACHINE" in
 	armv5* | armv6*) ;;
 	*)
 		makedepends+=" qt6-pdf-devel"
-		subpackages+=" python3-pyqt6-pdf python3-pyqt6-pdf-devel"
+		subpackages+=" python3-pyqt6-pdf"
 		;;
 esac
 # Split like qt6, but keep qt6-core in main pkg
 
-python3-pyqt6-core-devel_package() {
-	lib32disabled=yes
+python3-pyqt6-bindings_package() {
+	lib32disabled=yes
+	replaces="python3-pyqt6-core-devel
+	 python3-pyqt6-connectivity-devel
+	 python3-pyqt6-dbus-devel
+	 python3-pyqt6-declarative-devel
+	 python3-pyqt6-gui-devel
+	 python3-pyqt6-multimedia-devel
+	 python3-pyqt6-network-devel
+	 python3-pyqt6-opengl-widgets-devel
+	 python3-pyqt6-pdf-devel
+	 python3-pyqt6-position-devel
+	 python3-pyqt6-printsupport-devel
+	 python3-pyqt6-quick3d-devel
+	 python3-pyqt6-remoteobjects-devel
+	 python3-pyqt6-sensors-devel
+	 python3-pyqt6-serialport-devel
+	 python3-pyqt6-speech-devel
+	 python3-pyqt6-sql-devel
+	 python3-pyqt6-svg-devel
+	 python3-pyqt6-test-devel
+	 python3-pyqt6-tools-devel
+	 python3-pyqt6-websockets-devel
+	 python3-pyqt6-webchannel-devel
+	 python3-pyqt6-widgets-devel
+	 python3-pyqt6-xml-devel"
 	depends="${sourcepkg}>=${version}_${revision}
 	 qt6-base-devel python3-devel sip"
-	short_desc="${short_desc} - core development files"
+	short_desc="${short_desc} - SIP bindings"
 	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtCore"
+		vmove "${py3_sitelib}/PyQt6/bindings"
 	}
 }
 
@@ -77,16 +102,6 @@ python3-pyqt6-dbus_package() {
 	}
 }
 
-python3-pyqt6-dbus-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-dbus>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}"
-	short_desc="${short_desc} - DBus - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtDBus"
-	}
-}
-
 python3-pyqt6-tools_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -98,17 +113,6 @@ python3-pyqt6-tools_package() {
 	}
 }
 
-python3-pyqt6-tools-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-tools>=${version}_${revision} qt6-tools-devel
-	 python3-pyqt6-widgets-devel>=${version}_${revision}"
-	short_desc="${short_desc} - Tools - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtDesigner"
-		vmove "${py3_sitelib}/PyQt6/bindings/QtHelp"
-	}
-}
-
 python3-pyqt6-gui_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -119,17 +123,6 @@ python3-pyqt6-gui_package() {
 	}
 }
 
-python3-pyqt6-gui-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-gui>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}"
-	short_desc="${short_desc} - GUI - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtGui"
-		vmove "${py3_sitelib}/PyQt6/bindings/QtOpenGL"
-	}
-}
-
 python3-pyqt6-network_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -139,16 +132,6 @@ python3-pyqt6-network_package() {
 	}
 }
 
-python3-pyqt6-network-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-network>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}"
-	short_desc="${short_desc} - Network"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtNetwork"
-	}
-}
-
 python3-pyqt6-opengl-widgets_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -158,16 +141,6 @@ python3-pyqt6-opengl-widgets_package() {
 	}
 }
 
-python3-pyqt6-opengl-widgets-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-opengl-widgets>=${version}_${revision}
-	 python3-pyqt6-widgets-devel>=${version}_${revision}"
-	short_desc="${short_desc} - OpenGL Widgets - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtOpenGLWidgets"
-	}
-}
-
 python3-pyqt6-printsupport_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -177,16 +150,6 @@ python3-pyqt6-printsupport_package() {
 	}
 }
 
-python3-pyqt6-printsupport-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-printsupport>=${version}_${revision}
-	 python3-pyqt6-widgets-devel>=${version}_${revision}"
-	short_desc="${short_desc} - Print Support - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtPrintSupport"
-	}
-}
-
 python3-pyqt6-declarative_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -199,18 +162,6 @@ python3-pyqt6-declarative_package() {
 	}
 }
 
-python3-pyqt6-declarative-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-declarative>=${version}_${revision}
-	 qt6-declarative-devel python3-pyqt6-widgets-devel>=${version}_${revision}"
-	short_desc="${short_desc} - Declarative - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtQml"
-		vmove "${py3_sitelib}/PyQt6/bindings/QtQuick"
-		vmove "${py3_sitelib}/PyQt6/bindings/QtQuickWidgets"
-	}
-}
-
 python3-pyqt6-quick3d_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -220,16 +171,6 @@ python3-pyqt6-quick3d_package() {
 	}
 }
 
-python3-pyqt6-quick3d-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-quick3d>=${version}_${revision} qt6-quick3d-devel
-	 python3-pyqt6-declarative-devel>=${version}_${revision}"
-	short_desc="${short_desc} - Quick3D - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtQuick3D"
-	}
-}
-
 python3-pyqt6-sql_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -239,16 +180,6 @@ python3-pyqt6-sql_package() {
 	}
 }
 
-python3-pyqt6-sql-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-sql>=${version}_${revision}
-	 python3-pyqt6-widgets-devel>=${version}_${revision}"
-	short_desc="${short_desc} - SQL - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtSql"
-	}
-}
-
 python3-pyqt6-svg_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -259,17 +190,6 @@ python3-pyqt6-svg_package() {
 	}
 }
 
-python3-pyqt6-svg-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-svg>=${version}_${revision} qt6-svg-devel
-	 python3-pyqt6-widgets-devel>=${version}_${revision}"
-	short_desc="${short_desc} - svg - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtSvg"
-		vmove "${py3_sitelib}/PyQt6/bindings/QtSvgWidgets"
-	}
-}
-
 python3-pyqt6-test_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -279,16 +199,6 @@ python3-pyqt6-test_package() {
 	}
 }
 
-python3-pyqt6-test-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-test>=${version}_${revision}
-	 python3-pyqt6-widgets-devel>=${version}_${revision}"
-	short_desc="${short_desc} - Test - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtTest"
-	}
-}
-
 python3-pyqt6-widgets_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -298,16 +208,6 @@ python3-pyqt6-widgets_package() {
 	}
 }
 
-python3-pyqt6-widgets-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-widgets>=${version}_${revision}
-	 python3-pyqt6-gui-devel>=${version}_${revision}"
-	short_desc="${short_desc} - Widgets"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtWidgets"
-	}
-}
-
 python3-pyqt6-xml_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -317,16 +217,6 @@ python3-pyqt6-xml_package() {
 	}
 }
 
-python3-pyqt6-xml-devel_package() {
-	lib32disabled=yes
-	depends="${sourcepkg}>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}"
-	short_desc="${short_desc} - Xml - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtXml"
-	}
-}
-
 python3-pyqt6-devel-tools_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -341,7 +231,7 @@ python3-pyqt6-devel-tools_package() {
 python3-pyqt6-devel_package() {
 	lib32disabled=yes
 	build_style=meta
-	depends="${subpackages/python3-pyqt6-devel /}"
+	depends="python3-pyqt6-devel-tools python3-pyqt6-bindings"
 	short_desc="${short_desc} - development files"
 }
 
@@ -354,17 +244,6 @@ python3-pyqt6-websockets_package() {
 	}
 }
 
-python3-pyqt6-websockets-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - WebSockets - development files"
-	depends="python3-pyqt6-websockets>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-websockets-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtWebSockets"
-	}
-}
-
 python3-pyqt6-webchannel_package() {
 	lib32disabled=yes
 	short_desc+=" - WebChannel"
@@ -374,17 +253,6 @@ python3-pyqt6-webchannel_package() {
 	}
 }
 
-python3-pyqt6-webchannel-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - WebChannel - development files"
-	depends="python3-pyqt6-webchannel>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-webchannel-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtWebChannel"
-	}
-}
-
 python3-pyqt6-multimedia_package() {
 	lib32disabled=yes
 	short_desc+=" - Multimedia"
@@ -395,18 +263,6 @@ python3-pyqt6-multimedia_package() {
 	}
 }
 
-python3-pyqt6-multimedia-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - Multimedia - development files"
-	depends="python3-pyqt6-multimedia>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-multimedia-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtMultimedia*"
-		vmove "${py3_sitelib}/PyQt6/bindings/QtSpatialAudio*"
-	}
-}
-
 python3-pyqt6-position_package() {
 	lib32disabled=yes
 	short_desc+=" - Position"
@@ -416,17 +272,6 @@ python3-pyqt6-position_package() {
 	}
 }
 
-python3-pyqt6-position-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - Position - development files"
-	depends="python3-pyqt6-position>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-location-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtPositioning"
-	}
-}
-
 python3-pyqt6-remoteobjects_package() {
 	lib32disabled=yes
 	short_desc+=" - RemoteObjects"
@@ -436,17 +281,6 @@ python3-pyqt6-remoteobjects_package() {
 	}
 }
 
-python3-pyqt6-remoteobjects-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - RemoteObjects - development files"
-	depends="python3-pyqt6-remoteobjects>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-remoteobjects-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtRemoteObjects"
-	}
-}
-
 python3-pyqt6-sensors_package() {
 	lib32disabled=yes
 	short_desc+=" - Sensors"
@@ -456,17 +290,6 @@ python3-pyqt6-sensors_package() {
 	}
 }
 
-python3-pyqt6-sensors-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - Sensors - development files"
-	depends="python3-pyqt6-sensors>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-sensors-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtSensors"
-	}
-}
-
 python3-pyqt6-serialport_package() {
 	lib32disabled=yes
 	short_desc+=" - SerialPort"
@@ -476,17 +299,6 @@ python3-pyqt6-serialport_package() {
 	}
 }
 
-python3-pyqt6-serialport-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - SerialPort - development files"
-	depends="python3-pyqt6-serialport>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-serialport-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtSerialPort"
-	}
-}
-
 python3-pyqt6-connectivity_package() {
 	lib32disabled=yes
 	short_desc+=" - Connectivity"
@@ -497,18 +309,6 @@ python3-pyqt6-connectivity_package() {
 	}
 }
 
-python3-pyqt6-connectivity-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - Connectivity - development files"
-	depends="python3-pyqt6-connectivity>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-connectivity-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtBluetooth"
-		vmove "${py3_sitelib}/PyQt6/bindings/QtNfc"
-	}
-}
-
 python3-pyqt6-pdf_package() {
 	lib32disabled=yes
 	short_desc+=" - Pdf"
@@ -519,18 +319,6 @@ python3-pyqt6-pdf_package() {
 	}
 }
 
-python3-pyqt6-pdf-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - Pdf - development files"
-	depends="python3-pyqt6-pdf>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-pdf-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtPdf"
-		vmove "${py3_sitelib}/PyQt6/bindings/QtPdfWidgets"
-	}
-}
-
 python3-pyqt6-speech_package() {
 	lib32disabled=yes
 	short_desc+=" - Speech"
@@ -539,14 +327,3 @@ python3-pyqt6-speech_package() {
 		vmove "${py3_sitelib}/PyQt6/QtTextToSpeech.*"
 	}
 }
-
-python3-pyqt6-speech-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - Speech - development files"
-	depends="python3-pyqt6-speech>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-speech-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtTextToSpeech"
-	}
-}

From 37f35cad7ced5ad7eaad2d69ca3e7a381c92bdbe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:33 +0700
Subject: [PATCH 41/52] python3-pyqt6-3d: update to 6.7.0.

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

diff --git a/srcpkgs/python3-pyqt6-3d/template b/srcpkgs/python3-pyqt6-3d/template
index f3a0488a4eea65..e60a51397d710c 100644
--- a/srcpkgs/python3-pyqt6-3d/template
+++ b/srcpkgs/python3-pyqt6-3d/template
@@ -1,18 +1,18 @@
 # Template file for 'python3-pyqt6-3d'
 pkgname=python3-pyqt6-3d
-version=6.6.0
-revision=2
+version=6.7.0
+revision=1
 build_style=sip-build
 build_helper="python3"
 hostmakedepends="qt6-base python3-PyQt-builder pkg-config"
-makedepends="python3-pyqt6-gui-devel qt6-3d-devel"
+makedepends="python3-pyqt6-bindings qt6-3d-devel"
 depends="python3-pyqt6"
 short_desc="Qt6 bindings for 3D - Python 3"
 maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 license="GPL-3.0-only"
 homepage="https://www.riverbankcomputing.com/software/pyqt3d/"
 distfiles="$PYPI_SITE/P/PyQt6-3D/PyQt6_3D-${version}.tar.gz"
-checksum=372b206eb8185f2b6ff048629d3296cb137c9e5901b113119ffa46a317726988
+checksum=3e99bfc801918ab4758dd2660b2d2358e0057c943eb2bd9f8d0ddf156ea5ccd7
 lib32disabled=yes
 
 python3-pyqt6-3d-devel_package() {

From b0b1d9e201174ea7d21c685bb288f70eecb4855f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:33 +0700
Subject: [PATCH 42/52] python3-pyqt6-charts: update to 6.7.0.

---
 srcpkgs/python3-pyqt6-charts/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/python3-pyqt6-charts/template b/srcpkgs/python3-pyqt6-charts/template
index 778988af97212a..a775d616975f1a 100644
--- a/srcpkgs/python3-pyqt6-charts/template
+++ b/srcpkgs/python3-pyqt6-charts/template
@@ -1,7 +1,7 @@
 # Template file for 'python3-pyqt6-charts'
 pkgname=python3-pyqt6-charts
-version=6.6.0
-revision=2
+version=6.7.0
+revision=1
 build_style=sip-build
 build_helper="python3"
 hostmakedepends="qt6-base python3-PyQt-builder pkg-config"
@@ -12,7 +12,7 @@ maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 license="GPL-3.0-only"
 homepage="https://www.riverbankcomputing.com/software/pyqtchart/"
 distfiles="$PYPI_SITE/P/PyQt6-Charts/PyQt6_Charts-${version}.tar.gz"
-checksum=14cc6e5d19cae80129524a42fa6332d0d5dada4282a9423425e6b9ae1b6bc56d
+checksum=c4f7cf369928f7bf032e4e33f718d3b8fe66da176d4959fe30735a970d86f35c
 lib32disabled=yes
 
 python3-pyqt6-charts-devel_package() {

From 4194ac07e42099f60515da3a4b16f13fcffdf2ea Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:33 +0700
Subject: [PATCH 43/52] python3-pyqt6-networkauth: update to 6.7.0.

---
 srcpkgs/python3-pyqt6-charts/template      | 2 +-
 srcpkgs/python3-pyqt6-networkauth/template | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/python3-pyqt6-charts/template b/srcpkgs/python3-pyqt6-charts/template
index a775d616975f1a..eee424dc7efce4 100644
--- a/srcpkgs/python3-pyqt6-charts/template
+++ b/srcpkgs/python3-pyqt6-charts/template
@@ -5,7 +5,7 @@ revision=1
 build_style=sip-build
 build_helper="python3"
 hostmakedepends="qt6-base python3-PyQt-builder pkg-config"
-makedepends="qt6-charts-devel python3-pyqt6-widgets-devel"
+makedepends="qt6-charts-devel python3-pyqt6-bindings"
 depends="python3-pyqt6"
 short_desc="Qt6 bindings for Charts - Python 3"
 maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
diff --git a/srcpkgs/python3-pyqt6-networkauth/template b/srcpkgs/python3-pyqt6-networkauth/template
index 95010578bf61e2..f4ece09899425a 100644
--- a/srcpkgs/python3-pyqt6-networkauth/template
+++ b/srcpkgs/python3-pyqt6-networkauth/template
@@ -1,18 +1,18 @@
 # Template file for 'python3-pyqt6-networkauth'
 pkgname=python3-pyqt6-networkauth
-version=6.6.0
-revision=2
+version=6.7.0
+revision=1
 build_style=sip-build
 build_helper="python3"
 hostmakedepends="qt6-base python3-PyQt-builder pkg-config"
-makedepends="python3-pyqt6-network-devel qt6-networkauth-devel"
+makedepends="python3-pyqt6-bindings qt6-networkauth-devel"
 depends="python3-pyqt6"
 short_desc="Qt6 bindings for NetworkAuth - Python 3"
 maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 license="GPL-3.0-only"
 homepage="https://www.riverbankcomputing.com/software/pyqtnetworkauth/"
 distfiles="$PYPI_SITE/P/PyQt6-NetworkAuth/PyQt6_NetworkAuth-${version}.tar.gz"
-checksum=cdfc0bfaea16a9e09f075bdafefb996aa9fdec392052ba4fb3cbac233c1958fb
+checksum=974983525437633a0f016c0ffa0dc311847089f253dfe6840b0ec8ce21dc8685
 lib32disabled=yes
 
 python3-pyqt6-networkauth-devel_package() {

From 4e910e06aa382696dcd5d398cc2d990eb595d8f4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:33 +0700
Subject: [PATCH 44/52] python3-pyqt6-webengine: update to 6.7.0.

---
 srcpkgs/python3-pyqt6-webengine/template | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/python3-pyqt6-webengine/template b/srcpkgs/python3-pyqt6-webengine/template
index 793b3372d032ab..5d718db6c023c7 100644
--- a/srcpkgs/python3-pyqt6-webengine/template
+++ b/srcpkgs/python3-pyqt6-webengine/template
@@ -1,21 +1,18 @@
 # Template file for 'python3-pyqt6-webengine'
 pkgname=python3-pyqt6-webengine
-version=6.6.0
-revision=2
+version=6.7.0
+revision=1
 build_style=sip-build
 build_helper=python3
 hostmakedepends="qt6-base python3-PyQt-builder pkg-config"
-makedepends="python3-pyqt6-gui-devel qt6-webengine-devel
- python3-pyqt6-network-devel python3-pyqt6-webchannel-devel
- python3-pyqt6-declarative-devel python3-pyqt6-printsupport-devel
- python3-pyqt6-widgets-devel"
+makedepends="qt6-webengine-devel qt6-webchannel-devel python3-pyqt6-bindings"
 depends="python3-pyqt6"
 short_desc="Python 3 bindings for Qt6 - WebEngine"
 maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 license="GPL-3.0-or-later"
 homepage="https://www.riverbankcomputing.com/software/pyqtwebengine/"
 distfiles="$PYPI_SITE/P/PyQt6_WebEngine/PyQt6_WebEngine-$version.tar.gz"
-checksum=d50b984c3f85e409e692b156132721522d4e8cf9b6c25e0cf927eea2dfb39487
+checksum=68edc7adb6d9e275f5de956881e79cca0d71fad439abeaa10d823bff5ac55001
 lib32disabled=yes
 
 case "$XBPS_TARGET_MACHINE" in

From 7aaf4d8e255ed5927dc566f70573612d2196337d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:33 +0700
Subject: [PATCH 45/52] qt6ct: for qt6-6.7

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

diff --git a/srcpkgs/qt6ct/template b/srcpkgs/qt6ct/template
index 3b0d91b37474be..16903858d17284 100644
--- a/srcpkgs/qt6ct/template
+++ b/srcpkgs/qt6ct/template
@@ -1,10 +1,10 @@
 # Template file for 'qt6ct'
 pkgname=qt6ct
 version=0.9
-revision=1
+revision=2
 build_style=cmake
 hostmakedepends="qt6-tools qt6-base"
-makedepends="qt6-base-devel"
+makedepends="qt6-base-private-devel"
 depends="qt6-svg"
 short_desc="Qt6 Configuration Tool"
 maintainer="Adam Pschorr <adampschorr13@aol.com>"

From 79b87b0b1a859ef7174b9509af41c33c2d52a74e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:33 +0700
Subject: [PATCH 46/52] libqtxdg: for qt6-6.7

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

diff --git a/srcpkgs/libqtxdg/template b/srcpkgs/libqtxdg/template
index fd37e6374bac52..bb3d6c5a949c7a 100644
--- a/srcpkgs/libqtxdg/template
+++ b/srcpkgs/libqtxdg/template
@@ -1,10 +1,10 @@
 # Template file for 'libqtxdg'
 pkgname=libqtxdg
 version=4.0.0
-revision=1
+revision=2
 build_style=cmake
 hostmakedepends="pkg-config lxqt-build-tools qt6-base"
-makedepends="qt6-base qt6-svg-devel libglib-devel"
+makedepends="qt6-base-private-devel qt6-svg-devel libglib-devel"
 short_desc="Qt implementation of freedesktop.org XDG specifications"
 maintainer="Helmut Pozimski <helmut@pozimski.eu>"
 license="LGPL-2.1-or-later"

From feaec6bde0af60e6e1484451c118dc04617c7c1d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:33 +0700
Subject: [PATCH 47/52] kdeconnect: enable bluetooth

---
 srcpkgs/kdeconnect/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/kdeconnect/template b/srcpkgs/kdeconnect/template
index 514ae5a7733877..1d8495ed15471d 100644
--- a/srcpkgs/kdeconnect/template
+++ b/srcpkgs/kdeconnect/template
@@ -1,10 +1,10 @@
 # Template file for 'kdeconnect'
 pkgname=kdeconnect
 version=24.05.0
-revision=2
+revision=3
 build_style=cmake
 configure_args="-DWaylandScanner_EXECUTABLE=/usr/bin/wayland-scanner
- -DKDE_INSTALL_QMLDIR=lib/qt6/qml
+ -DKDE_INSTALL_QMLDIR=lib/qt6/qml -DBLUETOOTH_ENABLED=ON
  -DKF6_HOST_TOOLING=/usr/lib/cmake -DKDE_INSTALL_QTPLUGINDIR=lib/qt6/plugins"
 hostmakedepends="extra-cmake-modules qt6-tools
  pkg-config wayland-devel qt6-base python3 kf6-kdoctools kf6-kpackage kf6-kconfig
@@ -15,7 +15,7 @@ makedepends="kf6-kcmutils-devel kf6-kconfigwidgets-devel kf6-kdbusaddons-devel
  kf6-kirigami-devel kf6-knotifications-devel kf6-kstatusnotifieritem-devel
  kf6-kservice-devel kf6-qqc2-desktop-style-devel kf6-modemmanager-qt-devel
  kf6-kpackage-devel kf6-kpeople-devel kf6-kwayland-devel
- libfakekey-devel qca-qt6-devel pulseaudio-qt-devel qt6-base-devel
+ libfakekey-devel qca-qt6-devel pulseaudio-qt-devel qt6-base-private-devel
  qt6-connectivity-devel qt6-multimedia-devel kirigami-addons-devel"
 depends="kde-cli-tools qca-qt6 fuse-sshfs kf6-kirigami kf6-qqc2-desktop-style
  breeze-icons kirigami-addons qt6-plugin-tls-openssl"

From 23f3e18a57639db94be5e3c1365cd1faf2cdf859 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:34 +0700
Subject: [PATCH 48/52] calibre: fix build after pyqt6 restructure

---
 srcpkgs/calibre/template | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/srcpkgs/calibre/template b/srcpkgs/calibre/template
index b0302c2f9f247e..7907f71b18184e 100644
--- a/srcpkgs/calibre/template
+++ b/srcpkgs/calibre/template
@@ -6,6 +6,7 @@ build_helper=python3
 pycompile_dirs="/usr/lib/calibre/"
 hostmakedepends="pkg-config cmake python3-BeautifulSoup4 python3-Pillow
  python3-apsw python3-css-parser python3-dateutil sip qt6-base python3-py7zr
+ python3-pyqt6-devel-tools
  python3-html5-parser python3-msgpack python3-regex python3-mechanize
  mathjax liberation-fonts-ttf python3-zeroconf xdg-utils rapydscript-ng
  python3-PyQt-builder python3-Markdown python3-xxhash"
@@ -13,7 +14,9 @@ makedepends="libinput-devel libmagick-devel libmtp-devel libstemmer-devel
  libpodofo-devel libwmf-devel libxkbcommon-devel poppler-cpp-devel
  freetype-devel uchardet-devel openssl-devel icu-devel libusb-devel
  sqlite-devel tslib-devel hunspell-devel hyphen-devel libstemmer-devel
- python3-pyqt6-devel python3-pyqt6-webengine-devel"
+ python3-pyqt6-gui python3-pyqt6-svg python3-pyqt6-widgets python3-pyqt6-network
+ python3-pyqt6-printsupport python3-pyqt6-webengine python3-pyqt6-webchannel
+ qt6-base-private-devel python3-pyqt6-bindings python3-pyqt6-webengine-devel"
 depends="desktop-file-utils optipng poppler python3-BeautifulSoup4
  qt6-imageformats python3-Pygments python3-pycryptodome python3-xxhash
  python3-Markdown python3-Pillow python3-zeroconf python3-Pygments python3-apsw

From 970ce117f0f7b99bdbff03e5eae184005297f1b4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:34 +0700
Subject: [PATCH 49/52] kf6-akonadi: for qt6-6.7

---
 srcpkgs/kf6-akonadi/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/kf6-akonadi/template b/srcpkgs/kf6-akonadi/template
index 75416c5d77d8d2..020dd9872cff24 100644
--- a/srcpkgs/kf6-akonadi/template
+++ b/srcpkgs/kf6-akonadi/template
@@ -1,7 +1,7 @@
 # Template file for 'kf6-akonadi'
 pkgname=kf6-akonadi
 version=24.02.2
-revision=2
+revision=3
 build_style=cmake
 build_helper="qemu"
 configure_args="-DKF6_HOST_TOOLING=/usr/lib/cmake

From 19a890c0a8e5d97e6ccf5ee0d008d0b19650e02d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:34 +0700
Subject: [PATCH 50/52] gpgme-qt6: for qt6-6.7

---
 srcpkgs/gpgme-qt6/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/gpgme-qt6/template b/srcpkgs/gpgme-qt6/template
index 628813a074f4d8..641b656910634e 100644
--- a/srcpkgs/gpgme-qt6/template
+++ b/srcpkgs/gpgme-qt6/template
@@ -7,7 +7,7 @@
 #          -> colord -> sane -> poppler -> gpgme -> qt5 -> SDL2
 pkgname=gpgme-qt6
 version=1.23.2
-revision=4
+revision=5
 build_style=gnu-configure
 configure_args="--enable-fd-passing
  --with-libgpg-error-prefix=$XBPS_CROSS_BASE/usr

From 9825e0fa6a51e9e82fdc117b958d4e1e8d193315 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:34 +0700
Subject: [PATCH 51/52] kf6-kdeclarative: for qt6-6.7

---
 srcpkgs/kf6-kdeclarative/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/kf6-kdeclarative/template b/srcpkgs/kf6-kdeclarative/template
index 4270df46f26c5d..0ab17595d8b6d3 100644
--- a/srcpkgs/kf6-kdeclarative/template
+++ b/srcpkgs/kf6-kdeclarative/template
@@ -1,7 +1,7 @@
 # Template file for 'kf6-kdeclarative'
 pkgname=kf6-kdeclarative
 version=6.3.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DKDE_INSTALL_QMLDIR=lib/qt6/qml"
 hostmakedepends="extra-cmake-modules qt6-tools qt6-base

From 5b287a1b8f3e31eee28205c5f7a543c914f90b16 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:34 +0700
Subject: [PATCH 52/52] kf6-ksvg: for qt6-6.7

---
 srcpkgs/kf6-ksvg/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/kf6-ksvg/template b/srcpkgs/kf6-ksvg/template
index 37379482c5c7c7..a5cd9a3fc94eeb 100644
--- a/srcpkgs/kf6-ksvg/template
+++ b/srcpkgs/kf6-ksvg/template
@@ -1,7 +1,7 @@
 # Template file for 'kf6-ksvg'
 pkgname=kf6-ksvg
 version=6.3.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DKDE_INSTALL_QMLDIR=lib/qt6/qml
  -DKDE_INSTALL_QTPLUGINDIR=lib/qt6/plugins"

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

* Re: [PR PATCH] [Updated] Qt6 6.7.2
  2024-06-23  3:44 [PR PATCH] Qt6 6.7.2 sgn
  2024-06-23  7:51 ` [PR PATCH] [Updated] " sgn
@ 2024-06-23 11:35 ` sgn
  2024-06-23 11:45 ` [PR PATCH] [Merged]: " sgn
  2 siblings, 0 replies; 4+ messages in thread
From: sgn @ 2024-06-23 11:35 UTC (permalink / raw)
  To: ml

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

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

https://github.com/sgn/void-packages qt6-6.7.2
https://github.com/void-linux/void-packages/pull/50942

Qt6 6.7.2
<!-- Uncomment relevant sections and delete options which are not applicable -->
[ci skip][skip ci]
#### Testing the changes
- I tested the changes in this PR: **YES**|**briefly**|**NO**

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


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

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

From 38307fb5ed67615483c54c3dc140a29a0a2697f7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:28 +0700
Subject: [PATCH 01/44] qt6-base: update to 6.7.2.

---
 srcpkgs/qt6-base-private-devel                |  1 +
 .../qt6-base/patches/libxkbcommon1.6.0.patch  | 39 -------------------
 srcpkgs/qt6-base/patches/markdown.patch       |  6 +--
 srcpkgs/qt6-base/patches/musl-limits.patch    | 20 ----------
 .../qt6-base/patches/musl-test-image.patch    |  8 ++--
 .../qt6-base/patches/musl-usr-path-hack.patch |  6 +--
 ...urce-root-dir-last-modified-is-valid.patch |  6 +--
 .../qt6-base/patches/x86-qround-passed.patch  |  8 ++--
 srcpkgs/qt6-base/patches/zfs-storage.patch    | 17 ++++----
 srcpkgs/qt6-base/template                     | 37 ++++++++++++++++--
 10 files changed, 59 insertions(+), 89 deletions(-)
 create mode 120000 srcpkgs/qt6-base-private-devel
 delete mode 100644 srcpkgs/qt6-base/patches/libxkbcommon1.6.0.patch
 delete mode 100644 srcpkgs/qt6-base/patches/musl-limits.patch

diff --git a/srcpkgs/qt6-base-private-devel b/srcpkgs/qt6-base-private-devel
new file mode 120000
index 00000000000000..8ddee598d5edc4
--- /dev/null
+++ b/srcpkgs/qt6-base-private-devel
@@ -0,0 +1 @@
+qt6-base
\ No newline at end of file
diff --git a/srcpkgs/qt6-base/patches/libxkbcommon1.6.0.patch b/srcpkgs/qt6-base/patches/libxkbcommon1.6.0.patch
deleted file mode 100644
index 7c1b0e8e9851e5..00000000000000
--- a/srcpkgs/qt6-base/patches/libxkbcommon1.6.0.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 8af35d27e8f02bbb99aef4ac495ed406e50e3cca Mon Sep 17 00:00:00 2001
-From: Liang Qi <liang.qi@qt.io>
-Date: Tue, 10 Oct 2023 14:08:48 +0200
-Subject: [PATCH] xkb: fix build with libxkbcommon 1.6.0 and later
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-A few XKB_KEY_dead_* defines got removed from 1.6.0. See also
-https://github.com/xkbcommon/libxkbcommon/blob/6073565903488cb5b9a8d37fdc4a7c2f9d7ad04d/NEWS#L9-L14
-https://gitlab.freedesktop.org/xorg/proto/xorgproto/-/merge_requests/70/diffs?commit_id=cb44799b72f611eb4c9d7cc185bc3b09e070be08
-
-Pick-to: 6.6 6.5 6.2 5.15
-Fixes: QTBUG-117950
-Change-Id: I55861868f2bb29c553d68365fa9b9b6ed01c9aea
-Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
----
- src/gui/platform/unix/qxkbcommon.cpp | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/gui/platform/unix/qxkbcommon.cpp b/src/gui/platform/unix/qxkbcommon.cpp
-index 26d87c5ff59..7b611790c67 100644
---- a/src/gui/platform/unix/qxkbcommon.cpp
-+++ b/src/gui/platform/unix/qxkbcommon.cpp
-@@ -237,10 +237,14 @@ static constexpr const auto KeyTbl = qMakeArray(
-         Xkb2Qt<XKB_KEY_dead_small_schwa,        Qt::Key_Dead_Small_Schwa>,
-         Xkb2Qt<XKB_KEY_dead_capital_schwa,      Qt::Key_Dead_Capital_Schwa>,
-         Xkb2Qt<XKB_KEY_dead_greek,              Qt::Key_Dead_Greek>,
-+/* The following four XKB_KEY_dead keys got removed in libxkbcommon 1.6.0
-+   The define check is kind of version check here. */
-+#ifdef XKB_KEY_dead_lowline
-         Xkb2Qt<XKB_KEY_dead_lowline,            Qt::Key_Dead_Lowline>,
-         Xkb2Qt<XKB_KEY_dead_aboveverticalline,  Qt::Key_Dead_Aboveverticalline>,
-         Xkb2Qt<XKB_KEY_dead_belowverticalline,  Qt::Key_Dead_Belowverticalline>,
-         Xkb2Qt<XKB_KEY_dead_longsolidusoverlay, Qt::Key_Dead_Longsolidusoverlay>,
-+#endif
- 
-         // Special keys from X.org - This include multimedia keys,
-         // wireless/bluetooth/uwb keys, special launcher keys, etc.
diff --git a/srcpkgs/qt6-base/patches/markdown.patch b/srcpkgs/qt6-base/patches/markdown.patch
index 249dd8bf9d3517..883256e157c00f 100644
--- a/srcpkgs/qt6-base/patches/markdown.patch
+++ b/srcpkgs/qt6-base/patches/markdown.patch
@@ -1,6 +1,6 @@
---- qt6-base-6.6.0/tests/auto/gui/text/qtextmarkdownimporter/tst_qtextmarkdownimporter.cpp	2023-09-13 18:02:48.000000000 +0200
-+++ -	2023-10-13 20:01:07.568899554 +0200
-@@ -223,10 +223,12 @@
+--- a/tests/auto/gui/text/qtextmarkdownimporter/tst_qtextmarkdownimporter.cpp
++++ b/tests/auto/gui/text/qtextmarkdownimporter/tst_qtextmarkdownimporter.cpp
+@@ -225,10 +225,12 @@ void tst_QTextMarkdownImporter::lists_da
      QTest::newRow("numeric lists nested in empty lists")
              << "- \n    1.  a\n    2.  b\n- c\n  1.\n       + d\n" << 0 << 1 << 4 << false
              << "- \n    1.  a\n    2.  b\n- c 1. + d\n";
diff --git a/srcpkgs/qt6-base/patches/musl-limits.patch b/srcpkgs/qt6-base/patches/musl-limits.patch
deleted file mode 100644
index da6d272d99deb3..00000000000000
--- a/srcpkgs/qt6-base/patches/musl-limits.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- qt6-base-6.4.2.orig/qmake/library/ioutils.cpp
-+++ qt6-base-6.4.2/qmake/library/ioutils.cpp
-@@ -15,6 +15,7 @@
- #  include <unistd.h>
- #  include <utime.h>
- #  include <fcntl.h>
-+#  include <limits.h>
- #  include <errno.h>
- #endif
- 
---- qt6-base-6.4.2.orig/src/corelib/io/qstorageinfo_unix.cpp
-+++ qt6-base-6.4.2/src/corelib/io/qstorageinfo_unix.cpp
-@@ -23,6 +23,7 @@
- #  include <sys/vfs.h>
- #  include <mntent.h>
- #elif defined(Q_OS_LINUX) || defined(Q_OS_HURD)
-+#  include <limits.h>
- #  include <mntent.h>
- #  include <sys/statvfs.h>
- #  include <sys/sysmacros.h>
diff --git a/srcpkgs/qt6-base/patches/musl-test-image.patch b/srcpkgs/qt6-base/patches/musl-test-image.patch
index b966a22c12a76d..73fec8689e4451 100644
--- a/srcpkgs/qt6-base/patches/musl-test-image.patch
+++ b/srcpkgs/qt6-base/patches/musl-test-image.patch
@@ -1,6 +1,6 @@
---- qt6-base-6.4.2.orig/tests/auto/gui/image/qimage/tst_qimage.cpp
-+++ qt6-base-6.4.2/tests/auto/gui/image/qimage/tst_qimage.cpp
-@@ -1806,6 +1806,8 @@ void tst_QImage::smoothScale2()
+--- a/tests/auto/gui/image/qimage/tst_qimage.cpp
++++ b/tests/auto/gui/image/qimage/tst_qimage.cpp
+@@ -1827,6 +1827,8 @@ void tst_QImage::smoothScale2()
      QRgb expected = opaque ? qRgb(63, 127, 255) : qRgba(31, 63, 127, 127);
      img.fill(expected);
  
@@ -9,7 +9,7 @@
      // scale x down, y down
      QImage scaled = img.scaled(QSize(1, 1), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
      QRgb pixel = scaled.pixel(0, 0);
-@@ -1869,6 +1871,7 @@ void tst_QImage::smoothScale2()
+@@ -1890,6 +1892,7 @@ void tst_QImage::smoothScale2()
              QCOMPARE(qBlue(pixel), qBlue(expected));
          }
      }
diff --git a/srcpkgs/qt6-base/patches/musl-usr-path-hack.patch b/srcpkgs/qt6-base/patches/musl-usr-path-hack.patch
index 92eae8431aea17..0eed034a1ecd1e 100644
--- a/srcpkgs/qt6-base/patches/musl-usr-path-hack.patch
+++ b/srcpkgs/qt6-base/patches/musl-usr-path-hack.patch
@@ -6,9 +6,9 @@ This breaks qt6-webengine's search path for translations.
 Using realpath instead would probably be a more correct solution.
 
 ---
---- qt6-base-6.4.2.orig/src/corelib/global/qlibraryinfo.cpp
-+++ qt6-base-6.4.2/src/corelib/global/qlibraryinfo.cpp
-@@ -358,6 +358,12 @@ static QString getRelocatablePrefix(QLib
+--- a/src/corelib/global/qlibraryinfo.cpp
++++ b/src/corelib/global/qlibraryinfo.cpp
+@@ -383,6 +383,12 @@ static QString getRelocatablePrefix(QLib
      int result = dladdr(reinterpret_cast<void *>(&QLibraryInfo::isDebugBuild), &info);
      if (result > 0 && info.dli_fname)
          prefixPath = prefixFromQtCoreLibraryHelper(QString::fromLocal8Bit(info.dli_fname));
diff --git a/srcpkgs/qt6-base/patches/resource-root-dir-last-modified-is-valid.patch b/srcpkgs/qt6-base/patches/resource-root-dir-last-modified-is-valid.patch
index 282b583330ce03..b3c45a50a4fa86 100644
--- a/srcpkgs/qt6-base/patches/resource-root-dir-last-modified-is-valid.patch
+++ b/srcpkgs/qt6-base/patches/resource-root-dir-last-modified-is-valid.patch
@@ -1,6 +1,6 @@
---- qt6-base-6.4.2.orig/tests/auto/corelib/io/qresourceengine/tst_qresourceengine.cpp
-+++ qt6-base-6.4.2/tests/auto/corelib/io/qresourceengine/tst_qresourceengine.cpp
-@@ -592,7 +592,10 @@ void tst_QResourceEngine::lastModified()
+--- a/tests/auto/corelib/io/qresourceengine/tst_qresourceengine.cpp
++++ b/tests/auto/corelib/io/qresourceengine/tst_qresourceengine.cpp
+@@ -624,7 +624,10 @@ void tst_QResourceEngine::lastModified()
      {
          QFileInfo fi(":/");
          QVERIFY(fi.exists());
diff --git a/srcpkgs/qt6-base/patches/x86-qround-passed.patch b/srcpkgs/qt6-base/patches/x86-qround-passed.patch
index f658ed833e4f89..3229ec4db586d9 100644
--- a/srcpkgs/qt6-base/patches/x86-qround-passed.patch
+++ b/srcpkgs/qt6-base/patches/x86-qround-passed.patch
@@ -1,6 +1,6 @@
---- qt6-base-6.4.2.orig/tests/auto/corelib/global/qglobal/tst_qglobal.cpp
-+++ qt6-base-6.4.2/tests/auto/corelib/global/qglobal/tst_qglobal.cpp
-@@ -599,18 +599,14 @@ void tst_QGlobal::qRoundFloats() {
+--- a/tests/auto/corelib/global/qglobal/tst_qglobal.cpp
++++ b/tests/auto/corelib/global/qglobal/tst_qglobal.cpp
+@@ -766,18 +766,14 @@ void tst_QGlobal::qRoundFloats() {
      QFETCH(float, expected);
  
  #if !(defined(Q_PROCESSOR_ARM_64) && (__has_builtin(__builtin_round) || defined(Q_CC_GNU)) && !defined(Q_CC_CLANG))
@@ -23,7 +23,7 @@
  }
  
  void tst_QGlobal::qRoundDoubles_data() {
-@@ -628,18 +624,14 @@ void tst_QGlobal::qRoundDoubles() {
+@@ -795,18 +791,14 @@ void tst_QGlobal::qRoundDoubles() {
      QFETCH(double, expected);
  
  #if !(defined(Q_PROCESSOR_ARM_64) && (__has_builtin(__builtin_round) || defined(Q_CC_GNU)) && !defined(Q_CC_CLANG))
diff --git a/srcpkgs/qt6-base/patches/zfs-storage.patch b/srcpkgs/qt6-base/patches/zfs-storage.patch
index 0473836ba7d665..f26fb107bcf47c 100644
--- a/srcpkgs/qt6-base/patches/zfs-storage.patch
+++ b/srcpkgs/qt6-base/patches/zfs-storage.patch
@@ -1,11 +1,10 @@
---- qt6-base-6.4.2.orig/tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp
-+++ qt6-base-6.4.2/tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp
-@@ -165,6 +165,8 @@ void tst_QStorageInfo::tempFile()
- #ifdef Q_OS_LINUX
-     if (storage1.fileSystemType() == "btrfs")
-         QSKIP("This test doesn't work on btrfs, probably due to a btrfs bug");
-+    if (storage1.fileSystemType() == "zfs")
-+        QSKIP("This test doesn't work on zfs");
+--- a/tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp
++++ b/tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp
+@@ -220,6 +220,7 @@ static QString suitableDirectoryForWriti
+         // See comment below. If we can get a tmpfs, let's try it.
+         "btrfs",
+         "xfs",
++        "zfs",
  #endif
+     };
  
-     qint64 free = storage1.bytesFree();
diff --git a/srcpkgs/qt6-base/template b/srcpkgs/qt6-base/template
index 3311599dd87d88..4b63dc5d8402b8 100644
--- a/srcpkgs/qt6-base/template
+++ b/srcpkgs/qt6-base/template
@@ -1,7 +1,9 @@
 # Template file for 'qt6-base'
+#
+# On update rebuild all pkg with qt6-base-private-devel
 pkgname=qt6-base
-version=6.6.0
-revision=2
+version=6.7.2
+revision=1
 build_style=cmake
 configure_args="-DINSTALL_DATADIR=share/qt6
  -DINSTALL_ARCHDATADIR=lib${XBPS_TARGET_WORDSIZE}/qt6
@@ -13,12 +15,13 @@ configure_args="-DINSTALL_DATADIR=share/qt6
  -DINSTALL_SYSCONFDIR=/etc/xdg
  -DQT_FEATURE_openssl_linked=ON
  -DQT_FEATURE_system_sqlite=ON
+ -DQT_FEATURE_system_xcb_xinput=ON
  -DQT_FEATURE_libproxy=ON
  -DQT_FEATURE_qmake=ON
  -DBUILD_WITH_PCH=OFF"
 hostmakedepends="perl pkg-config xmlstarlet"
 makedepends="zlib-devel libzstd-devel dbus-devel libmd4c-devel
- double-conversion-devel glib-devel libxcb-devel
+ double-conversion-devel glib-devel libxcb-devel libSM-devel
  xcb-util-image-devel xcb-util-keysyms-devel
  xcb-util-renderutil-devel xcb-util-wm-devel
  MesaLib-devel pcre2-devel icu-devel mtdev-devel harfbuzz-devel
@@ -32,7 +35,7 @@ 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=039d53312acb5897a9054bd38c9ccbdab72500b71fdccdb3f4f0844b0dd39e0e
+checksum=c5f22a5e10fb162895ded7de0963328e7307611c688487b5d152c9ee64767599
 python_version=3
 
 if [ "$CROSS_BUILD" ]; then
@@ -46,6 +49,12 @@ if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args+=" -DQT_BUILD_TESTS=ON"
 fi
 
+subpackages="qt6-concurrent qt6-core qt6-dbus qt6-gui qt6-network
+ qt6-opengl-widgets qt6-plugin-mysql qt6-plugin-networkinformation
+ qt6-plugin-odbc qt6-plugin-pgsql qt6-plugin-sqlite qt6-plugin-tls-openssl
+ qt6-plugin-tls-qcertonly qt6-printsupport qt6-sql qt6-test qt6-widgets qt6-xml
+ qt6-base-private-devel qt6-base-doc qt6-base-devel"
+
 do_check() {
 	cd build
 	export QT_QPA_PLATFORM=offscreen
@@ -70,6 +79,11 @@ do_check() {
 	failing_tests+=" mockplugins test_import_plugins
 	 test_static_resources test_generating_cpp_exports"
 	failing_tests+=" tst_qstorageinfo"
+	# cmake
+	failing_tests+=" test_qt_add_resources_rebuild test_collecting_plugins
+	 test_standalone_test test_qt_extract_metatypes"
+	# Failing readonly and out-of-memory
+	failing_tests+=" tst_qsharedmemory"
 	if [ "$XBPS_TARGET_LIBC" = musl ]; then
 		# Some glibc specific DNS Lookup
 		failing_tests+=" tst_qdnslookup"
@@ -260,6 +274,21 @@ qt6-plugin-networkinformation_package() {
 	}
 }
 
+qt6-base-private-devel_package() {
+	short_desc+=" - private development files"
+	depends="qt6-base-devel>=${version}_${revision}"
+	pkg_install() {
+		for dir in $(cd ${DESTDIR} && pwd >&2 && find usr/include -type d -name private); do
+			vmove "$dir"
+		done
+		vmove "usr/lib/cmake/*Private"
+		vmove "usr/lib/qt6/metatypes/*private_*_metatypes.json"
+		# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=921930
+		# vmove "usr/lib/qt6/mkspecs/modules/*_private.pri"
+		vmove "usr/lib/qt6/modules/*Private.json"
+	}
+}
+
 qt6-base-devel_package() {
 	short_desc+=" - Development files"
 	depends="qt6-base>=${version}_${revision}

From d222e53dc1ba05ab109a22cdf87a601fddf20531 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:28 +0700
Subject: [PATCH 02/44] qt6-declarative: update to 6.7.2.

---
 srcpkgs/qt6-declarative-private-devel         |  1 +
 .../patches/bin-qml-location.patch            | 62 +++++++++----------
 srcpkgs/qt6-declarative/template              | 35 ++++++++---
 3 files changed, 57 insertions(+), 41 deletions(-)
 create mode 120000 srcpkgs/qt6-declarative-private-devel

diff --git a/srcpkgs/qt6-declarative-private-devel b/srcpkgs/qt6-declarative-private-devel
new file mode 120000
index 00000000000000..fd03a4809f3ebf
--- /dev/null
+++ b/srcpkgs/qt6-declarative-private-devel
@@ -0,0 +1 @@
+qt6-declarative
\ No newline at end of file
diff --git a/srcpkgs/qt6-declarative/patches/bin-qml-location.patch b/srcpkgs/qt6-declarative/patches/bin-qml-location.patch
index 9323aec00b64ce..84f6dfbe663c44 100644
--- a/srcpkgs/qt6-declarative/patches/bin-qml-location.patch
+++ b/srcpkgs/qt6-declarative/patches/bin-qml-location.patch
@@ -1,5 +1,5 @@
---- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmldebugtranslationclient/tst_qqmldebugtranslationclient.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmldebugtranslationclient/tst_qqmldebugtranslationclient.cpp
+--- a/tests/auto/qml/debugger/qqmldebugtranslationclient/tst_qqmldebugtranslationclient.cpp
++++ b/tests/auto/qml/debugger/qqmldebugtranslationclient/tst_qqmldebugtranslationclient.cpp
 @@ -71,6 +71,9 @@ private:
          m_currentOutputLine = 0;
  
@@ -10,8 +10,8 @@
          auto services = QQmlDebugTranslationServiceImpl::s_key;
          auto extraArgs = testFile(QMLFILE);
          auto block = true;
---- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp
+--- a/tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp
++++ b/tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp
 @@ -47,7 +47,11 @@ tst_QQmlInspector::tst_QQmlInspector()
  QQmlDebugTest::ConnectResult tst_QQmlInspector::startQmlProcess(const QString &qmlFile,
                                                                  bool restrictServices)
@@ -25,9 +25,9 @@
                                    restrictServices ? QStringLiteral("QmlInspector") : QString(),
                                    testFile(qmlFile), true);
  }
---- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp
-@@ -179,10 +179,18 @@ private:
+--- a/tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp
++++ b/tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp
+@@ -181,10 +181,18 @@ private:
          CheckType = CheckMessageType | CheckDetailType | CheckLine | CheckColumn | CheckFileEndsWith
      };
  
@@ -47,8 +47,8 @@
      void checkProcessTerminated();
      void checkTraceReceived();
      void checkJsHeap();
---- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/tst_qqmldebuggingenabler.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/tst_qqmldebuggingenabler.cpp
+--- a/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/tst_qqmldebuggingenabler.cpp
++++ b/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/tst_qqmldebuggingenabler.cpp
 @@ -85,8 +85,12 @@ void tst_QQmlDebuggingEnabler::qmlscene(
      QFETCH(bool, blockMode);
      QFETCH(QStringList, services);
@@ -64,8 +64,8 @@
      m_process->setMaximumBindErrors(1);
      m_process->start(QStringList()
                       << QString::fromLatin1("-qmljsdebugger=connector:%1%2%3%4")
---- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmlenginecontrol/tst_qqmlenginecontrol.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmlenginecontrol/tst_qqmlenginecontrol.cpp
+--- a/tests/auto/qml/debugger/qqmlenginecontrol/tst_qqmlenginecontrol.cpp
++++ b/tests/auto/qml/debugger/qqmlenginecontrol/tst_qqmlenginecontrol.cpp
 @@ -66,7 +66,11 @@ tst_QQmlEngineControl::tst_QQmlEngineCon
  QQmlDebugTest::ConnectResult tst_QQmlEngineControl::connectTo(const QString &file,
                                                              bool restrictServices)
@@ -79,11 +79,11 @@
                                    restrictServices ? QStringLiteral("EngineControl") : QString(),
                                    testFile(file), true);
  }
---- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp
+--- a/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp
++++ b/tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp
 @@ -70,8 +70,11 @@ tst_QQmlEngineDebugInspectorIntegration:
  
- QQmlDebugTest::ConnectResult tst_QQmlEngineDebugInspectorIntegration::init(bool restrictServices)
+ QQmlDebugTest::ConnectResult tst_QQmlEngineDebugInspectorIntegration::runAndConnect(bool restrictServices)
  {
 -    return QQmlDebugTest::connectTo(
 -                QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/qml",
@@ -95,8 +95,8 @@
                  restrictServices ? QStringLiteral("QmlDebugger,QmlInspector") : QString(),
                  testFile("qtquick2.qml"), true);
  }
---- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmlpreview/tst_qqmlpreview.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmlpreview/tst_qqmlpreview.cpp
+--- a/tests/auto/qml/debugger/qqmlpreview/tst_qqmlpreview.cpp
++++ b/tests/auto/qml/debugger/qqmlpreview/tst_qqmlpreview.cpp
 @@ -56,7 +56,11 @@ tst_QQmlPreview::tst_QQmlPreview()
  
  QQmlDebugTest::ConnectResult tst_QQmlPreview::startQmlProcess(const QString &qmlFile)
@@ -110,9 +110,9 @@
                                    QStringLiteral("QmlPreview"), testFile(qmlFile), true);
  }
  
---- qt6-declarative-6.4.2.orig/tests/auto/qml/qmlformat/tst_qmlformat.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/qmlformat/tst_qmlformat.cpp
-@@ -65,6 +65,9 @@ void TestQmlformat::initTestCase()
+--- a/tests/auto/qml/qmlformat/tst_qmlformat.cpp
++++ b/tests/auto/qml/qmlformat/tst_qmlformat.cpp
+@@ -74,6 +74,9 @@ void TestQmlformat::initTestCase()
  {
      QQmlDataTest::initTestCase();
      m_qmlformatPath = QLibraryInfo::path(QLibraryInfo::BinariesPath) + QLatin1String("/qmlformat");
@@ -122,8 +122,8 @@
  #ifdef Q_OS_WIN
      m_qmlformatPath += QLatin1String(".exe");
  #endif
---- qt6-declarative-6.4.2.orig/tests/auto/qml/qmlimportscanner/tst_qmlimportscanner.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/qmlimportscanner/tst_qmlimportscanner.cpp
+--- a/tests/auto/qml/qmlimportscanner/tst_qmlimportscanner.cpp
++++ b/tests/auto/qml/qmlimportscanner/tst_qmlimportscanner.cpp
 @@ -42,6 +42,9 @@ void TestQmlimportscanner::initTestCase(
      QQmlDataTest::initTestCase();
      m_qmlimportscannerPath = QLibraryInfo::path(QLibraryInfo::LibraryExecutablesPath)
@@ -134,9 +134,9 @@
  #ifdef Q_OS_WIN
      m_qmlimportscannerPath += QLatin1String(".exe");
  #endif
---- qt6-declarative-6.4.2.orig/tests/auto/qml/qmllint/tst_qmllint.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/qmllint/tst_qmllint.cpp
-@@ -159,10 +159,18 @@ void TestQmllint::initTestCase()
+--- a/tests/auto/qml/qmllint/tst_qmllint.cpp
++++ b/tests/auto/qml/qmllint/tst_qmllint.cpp
+@@ -170,10 +170,18 @@ void TestQmllint::initTestCase()
  {
      QQmlDataTest::initTestCase();
      m_qmllintPath = QLibraryInfo::path(QLibraryInfo::BinariesPath) + QLatin1String("/qmllint");
@@ -155,8 +155,8 @@
  #ifdef Q_OS_WIN
      m_qmllintPath += QLatin1String(".exe");
      m_qmljsrootgenPath += QLatin1String(".exe");
---- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qdebugmessageservice/tst_qdebugmessageservice.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qdebugmessageservice/tst_qdebugmessageservice.cpp
+--- a/tests/auto/qml/debugger/qdebugmessageservice/tst_qdebugmessageservice.cpp
++++ b/tests/auto/qml/debugger/qdebugmessageservice/tst_qdebugmessageservice.cpp
 @@ -118,7 +118,11 @@ tst_QDebugMessageService::tst_QDebugMess
  
  void tst_QDebugMessageService::retrieveDebugOutput()
@@ -170,8 +170,8 @@
                                      QString(), testFile(QMLFILE), true), ConnectSuccess);
  
      QTRY_VERIFY(m_client->logBuffer.size() >= 2);
---- qt6-declarative-6.4.2.orig/tests/auto/qml/qmlplugindump/tst_qmlplugindump.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/qmlplugindump/tst_qmlplugindump.cpp
+--- a/tests/auto/qml/qmlplugindump/tst_qmlplugindump.cpp
++++ b/tests/auto/qml/qmlplugindump/tst_qmlplugindump.cpp
 @@ -38,6 +38,9 @@ void tst_qmlplugindump::initTestCase()
  {
      QQmlDataTest::initTestCase();
@@ -182,8 +182,8 @@
  
  #if defined(Q_OS_WIN)
      qmlplugindumpPath += QLatin1String("/qmlplugindump.exe");
---- qt6-declarative-6.4.2.orig/tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp
-+++ qt6-declarative-6.4.2/tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp
+--- a/tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp
++++ b/tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp
 @@ -163,11 +163,18 @@ void tst_QQmlDebugJS::initTestCase()
      QQmlDebugTest::initTestCase();
  }
@@ -195,7 +195,7 @@
 +        return QString(build_bin_path) + "/qmlscene";
 +    return QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/qmlscene";
 +}
- QQmlDebugTest::ConnectResult tst_QQmlDebugJS::init(bool qmlscene, const QString &qmlFile,
+ QQmlDebugTest::ConnectResult tst_QQmlDebugJS::runAndConnect(bool qmlscene, const QString &qmlFile,
                                                     bool blockMode, bool restrictServices)
  {
      const QString executable = qmlscene
diff --git a/srcpkgs/qt6-declarative/template b/srcpkgs/qt6-declarative/template
index 02f71622e16194..33031bc568e62e 100644
--- a/srcpkgs/qt6-declarative/template
+++ b/srcpkgs/qt6-declarative/template
@@ -1,17 +1,20 @@
 # Template file for 'qt6-declarative'
+#
+# On update, rebuild pkgs with qt6-declarative-private-devel
 pkgname=qt6-declarative
-version=6.6.0
-revision=2
+version=6.7.2
+revision=1
 build_style=cmake
 configure_args="-DQT_BUILD_TESTS=ON"
 hostmakedepends="qt6-base perl pkg-config wayland-devel qt6-shadertools python3"
-makedepends="qt6-base-devel Vulkan-Headers qt6-shadertools-devel qt6-languageserver-devel"
+makedepends="qt6-base-private-devel Vulkan-Headers qt6-shadertools-devel
+ qt6-languageserver-private-devel"
 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=1b539bb0a918c8f0307fd07bd4ef0334bf7f8934bbc2eabfc04c433a7d7fa331
+checksum=4c29cba1af8c42d425d8eb6e01bad24cb80f4b983d71eef566a0542dfdb9b999
 replaces="qt6-quickcontrols2>=0"
 
 if [ "$CROSS_BUILD" ]; then
@@ -24,6 +27,9 @@ if [ "$XBPS_TARGET_ENDIAN" = "be" ]; then
 	broken="shader compilation fails"
 fi
 
+subpackages="qt6-quick-test qt6-declarative-host-tools qt6-declarative-tools
+ qt6-declarative-private-devel qt6-declarative-devel"
+
 do_check() {
 	cd build
 	export QML2_IMPORT_PATH="$wrksrc/build/lib${XBPS_TARGET_WORDSIZE}/qt6/qml"
@@ -93,6 +99,20 @@ qt6-declarative-host-tools_package() {
 	}
 }
 
+qt6-declarative-private-devel_package() {
+	depends="qt6-declarative-devel>=${version}_${revision}"
+	short_desc+=" - private development files"
+	pkg_install() {
+		for dir in $(cd ${DESTDIR} && find usr/include -type d -name private); do
+			vmove "$dir"
+		done
+		vmove "usr/lib/cmake/*Private"
+		vmove "usr/lib/qt6/metatypes/*private_*_metatypes.json"
+		vmove "usr/lib/qt6/mkspecs/modules/*_private.pri"
+		vmove "usr/lib/qt6/modules/*Private.json"
+	}
+}
+
 qt6-declarative-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision} qt6-base-devel>=${version}_1
 	 qt6-declarative-host-tools>=${version}_${revision}"
@@ -107,11 +127,6 @@ qt6-declarative-devel_package() {
 		vmove "usr/lib/*.a"
 		vmove "usr/lib/*.prl"
 		vmove usr/lib/qt6/modules
-		for _f in ${DESTDIR}/usr/lib/cmake/*; do
-			case "$_f" in
-			*Tools) ;;
-			*)	vmove "usr/lib/cmake/${_f##*/}" ;;
-			esac
-		done
+		vmove usr/lib/cmake
 	}
 }

From f014e1876f1a5e450c36cfb6f59ca4aa564bb33d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:29 +0700
Subject: [PATCH 03/44] qt6-languageserver: update to 6.7.2.

---
 srcpkgs/qt6-languageserver-private-devel |  1 +
 srcpkgs/qt6-languageserver/template      | 26 +++++++++++++++++++++---
 2 files changed, 24 insertions(+), 3 deletions(-)
 create mode 120000 srcpkgs/qt6-languageserver-private-devel

diff --git a/srcpkgs/qt6-languageserver-private-devel b/srcpkgs/qt6-languageserver-private-devel
new file mode 120000
index 00000000000000..7426b953adab41
--- /dev/null
+++ b/srcpkgs/qt6-languageserver-private-devel
@@ -0,0 +1 @@
+qt6-languageserver
\ No newline at end of file
diff --git a/srcpkgs/qt6-languageserver/template b/srcpkgs/qt6-languageserver/template
index a152b18f7dcd09..2521c5d684c509 100644
--- a/srcpkgs/qt6-languageserver/template
+++ b/srcpkgs/qt6-languageserver/template
@@ -1,17 +1,37 @@
 # Template file for 'qt6-languageserver'
 pkgname=qt6-languageserver
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 configure_args="-DQT_BUILD_TESTS=ON"
 hostmakedepends="qt6-base"
-makedepends="qt6-base-devel"
+makedepends="qt6-base-private-devel"
 short_desc="Implementation of the Language Server Protocol for Qt6"
 maintainer="classabbyamp <void@placeviolette.net>"
 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/qtlanguageserver-everywhere-src-${version}.tar.xz"
-checksum=aec93019862bf63769206fe56a2230cd9e37994806a4bf28415203b4eb9a490e
+checksum=b659fe655144ffa061e3ae509eadb42ae373230517295a96935434340e101a92
+
+subpackages="qt6-languageserver-private-devel qt6-languageserver-devel"
+
+post_install() {
+	rm -rf ${DESTDIR}/usr/tests
+}
+
+qt6-languageserver-private-devel_package() {
+	depends="qt6-languageserver-devel>=${version}_${revision}"
+	short_desc+=" - private development files"
+	pkg_install() {
+		for dir in $(cd ${DESTDIR} && find usr/include -type d -name private); do
+			vmove "$dir"
+		done
+		vmove "usr/lib/cmake/*Private"
+		vmove "usr/lib/qt6/metatypes/*private_*_metatypes.json"
+		vmove "usr/lib/qt6/mkspecs/modules/*_private.pri"
+		vmove "usr/lib/qt6/modules/*Private.json"
+	}
+}
 
 qt6-languageserver-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision}"

From 2dd0229873b5bf2c4d53c97f9f2db0b413e17bc4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:29 +0700
Subject: [PATCH 04/44] qt6-multimedia: update to 6.7.2.

---
 srcpkgs/qt6-multimedia-private-devel          |  1 +
 .../qt6-multimedia/patches/musl-timeval.patch | 10 -------
 srcpkgs/qt6-multimedia/template               | 28 +++++++++++++++----
 3 files changed, 24 insertions(+), 15 deletions(-)
 create mode 120000 srcpkgs/qt6-multimedia-private-devel
 delete mode 100644 srcpkgs/qt6-multimedia/patches/musl-timeval.patch

diff --git a/srcpkgs/qt6-multimedia-private-devel b/srcpkgs/qt6-multimedia-private-devel
new file mode 120000
index 00000000000000..9343446502d0e5
--- /dev/null
+++ b/srcpkgs/qt6-multimedia-private-devel
@@ -0,0 +1 @@
+qt6-multimedia
\ No newline at end of file
diff --git a/srcpkgs/qt6-multimedia/patches/musl-timeval.patch b/srcpkgs/qt6-multimedia/patches/musl-timeval.patch
deleted file mode 100644
index af7b4dd7fb5769..00000000000000
--- a/srcpkgs/qt6-multimedia/patches/musl-timeval.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- qt6-multimedia-6.4.2.orig/src/plugins/multimedia/ffmpeg/qv4l2camera_p.h
-+++ qt6-multimedia-6.4.2/src/plugins/multimedia/ffmpeg/qv4l2camera_p.h
-@@ -22,6 +22,7 @@
- #include <qfilesystemwatcher.h>
- #include <qsocketnotifier.h>
- #include <qmutex.h>
-+#include <sys/time.h>
- 
- QT_BEGIN_NAMESPACE
- 
diff --git a/srcpkgs/qt6-multimedia/template b/srcpkgs/qt6-multimedia/template
index 67a577e1300fea..046cc0b486ccdc 100644
--- a/srcpkgs/qt6-multimedia/template
+++ b/srcpkgs/qt6-multimedia/template
@@ -1,24 +1,28 @@
 # Template file for 'qt6-multimedia'
 pkgname=qt6-multimedia
-version=6.6.0
-revision=2
+version=6.7.2
+revision=1
 build_style=cmake
 configure_args="-DQT_FEATURE_gstreamer=ON"
 hostmakedepends="perl qt6-declarative-host-tools pkg-config qt6-shadertools"
-makedepends="qt6-declarative-devel pulseaudio-devel ffmpeg-devel libva-devel
- qt6-shadertools-devel libglib-devel gst-plugins-base1-devel qt6-quick3d-devel"
+makedepends="qt6-base-private-devel qt6-declarative-private-devel
+ qt6-quick3d-private-devel
+ pulseaudio-devel ffmpeg-devel libva-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/official_releases/qt/${version%.*}/${version}/submodules/qtmultimedia-everywhere-src-${version}.tar.xz"
-checksum=ba4b236ca3ec118841b7f5ba87797e24a8c5cbef9ba973fe219fbfc310d38782
+checksum=8ef835115acb9a1d3d2c9f23cfacb43f2c537e3786a8ab822299a2a7765651d3
 
 if [ "$XBPS_MACHINE" = "i686" ]; then
 	CXXFLAGS="-DPFFFT_SIMD_DISABLE=1"
 	CFLAGS="-DPFFFT_SIMD_DISABLE=1"
 fi
 
+subpackages="qt6-multimedia-private-devel qt6-multimedia-devel"
+
 do_check() {
 	cd build
 	local broken="tst_qmediaformat|tst_qaudiodecoderbackend"
@@ -33,6 +37,20 @@ post_install() {
 	rm -rf ${DESTDIR}/usr/tests
 }
 
+qt6-multimedia-private-devel_package() {
+	depends="qt6-multimedia-devel>=${version}_${revision}"
+	short_desc+=" - private development files"
+	pkg_install() {
+		for dir in $(cd ${DESTDIR} && find usr/include -type d -name private); do
+			vmove "$dir"
+		done
+		vmove "usr/lib/cmake/*Private"
+		vmove "usr/lib/qt6/metatypes/*private_*_metatypes.json"
+		vmove "usr/lib/qt6/mkspecs/modules/*_private.pri"
+		vmove "usr/lib/qt6/modules/*Private.json"
+	}
+}
+
 qt6-multimedia-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision} qt6-base-devel>=${version}_1"
 	short_desc+=" - development files"

From d4d075fd4ee826c131598a4de12188506e8e6493 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:29 +0700
Subject: [PATCH 05/44] qt6-qt5compat: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-qt5compat/template b/srcpkgs/qt6-qt5compat/template
index 5724b0f8a0f17d..fa9c9d6eabb147 100644
--- a/srcpkgs/qt6-qt5compat/template
+++ b/srcpkgs/qt6-qt5compat/template
@@ -1,18 +1,19 @@
 # Template file for 'qt6-qt5compat'
 pkgname=qt6-qt5compat
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 configure_args="-DQT_FEATURE_textcodec=ON -DQT_FEATURE_codecs=ON
  -DQT_FEATURE_iconv=ON -DQT_FEATURE_big_codecs=ON"
 hostmakedepends="qt6-base qt6-declarative-host-tools perl pkg-config"
-makedepends="qt6-base-devel qt6-declarative-devel qt6-shadertools-devel"
+makedepends="qt6-base-private-devel qt6-declarative-private-devel
+ qt6-shadertools-devel"
 short_desc="Cross-platform application and UI framework - Qt5 Compatibilty Component"
 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=3d85edb66126f712266dcbfc6cd00383d46cc6d66c8b84607ca21e2bc71a8fca
+checksum=8826b5189efc4d9bdb64fdb1aa89d0fdf4e53c60948ed7995621ed046e38c003
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args="-DQT_BUILD_TESTS=ON"

From 95eef11e124eb72d88c79b5c88a3eb07897f9182 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:29 +0700
Subject: [PATCH 06/44] qt6-quick3d: update to 6.7.2.

---
 srcpkgs/qt6-quick3d-private-devel |  1 +
 srcpkgs/qt6-quick3d/template      | 25 ++++++++++++++++++++-----
 2 files changed, 21 insertions(+), 5 deletions(-)
 create mode 120000 srcpkgs/qt6-quick3d-private-devel

diff --git a/srcpkgs/qt6-quick3d-private-devel b/srcpkgs/qt6-quick3d-private-devel
new file mode 120000
index 00000000000000..91ff6f03e47970
--- /dev/null
+++ b/srcpkgs/qt6-quick3d-private-devel
@@ -0,0 +1 @@
+qt6-quick3d
\ No newline at end of file
diff --git a/srcpkgs/qt6-quick3d/template b/srcpkgs/qt6-quick3d/template
index cf5b03d8024619..8cf3f07d37a848 100644
--- a/srcpkgs/qt6-quick3d/template
+++ b/srcpkgs/qt6-quick3d/template
@@ -1,19 +1,19 @@
 # Template file for 'qt6-quick3d'
 pkgname=qt6-quick3d
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-declarative-host-tools qt6-shadertools"
-makedepends="qt6-base-devel qt6-declarative-devel qt6-shadertools-devel
- qt6-quicktimeline libassimp-devel"
+makedepends="qt6-base-private-devel qt6-declarative-private-devel
+ qt6-shadertools-devel qt6-quicktimeline libassimp-devel"
 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=37ab3eb394e49d6c2b03c4da0c7f782c255dff294e73946369dd2e059a837aba
+checksum=bb8ff9aec6da2e2d3b3986cc859333a98b2f3d4bbe564c5733e8f1a089d15270
 
-subpackages="qt6-quick3d-tools qt6-quick3d-devel"
+subpackages="qt6-quick3d-tools qt6-quick3d-private-devel qt6-quick3d-devel"
 if [ "$CROSS_BUILD" ]; then
 	hostmakedepends+=" qt6-quick3d-tools"
 	configure_args="-DQT_FORCE_BUILD_TOOLS=true"
@@ -35,6 +35,21 @@ post_install() {
 	rm -rf ${DESTDIR}/usr/lib/libQt6BundledEmbree.a
 }
 
+qt6-quick3d-private-devel_package() {
+	depends="qt6-quick3d-devel>=${version}_${revision}
+	 qt6-declarative-private-devel"
+	short_desc+=" - private development files"
+	pkg_install() {
+		for dir in $(cd ${DESTDIR} && find usr/include -type d -name private); do
+			vmove "$dir"
+		done
+		vmove "usr/lib/cmake/*Private"
+		vmove "usr/lib/qt6/metatypes/*private_*_metatypes.json"
+		vmove "usr/lib/qt6/mkspecs/modules/*_private.pri"
+		vmove "usr/lib/qt6/modules/*Private.json"
+	}
+}
+
 qt6-quick3d-tools_package() {
 	depends="${sourcepkg}>=${version}_${revision}"
 	short_desc+=" - Tools"

From 250777ca3215101b136f43d650a0673d86b48ece Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:29 +0700
Subject: [PATCH 07/44] qt6-quicktimeline: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-quicktimeline/template b/srcpkgs/qt6-quicktimeline/template
index fcb2ec7ef59e94..5c19476ea230f3 100644
--- a/srcpkgs/qt6-quicktimeline/template
+++ b/srcpkgs/qt6-quicktimeline/template
@@ -1,16 +1,16 @@
 # Template file for 'qt6-quicktimeline'
 pkgname=qt6-quicktimeline
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base qt6-declarative-host-tools"
-makedepends="qt6-base-devel qt6-declarative-devel"
+makedepends="qt6-base-private-devel qt6-declarative-private-devel"
 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/rc/-rc}/submodules/qtquicktimeline-everywhere-src-${version/rc/-rc}.tar.xz"
-checksum=079e51d4572aed992731628b269f9c3f9c61a6c379bae6c354c949a6d89bb590
+checksum=21eddea01cf095cede10362eea4fb8402ffd06868c88d50a757c8c1f6b0719eb
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args="-DQT_BUILD_TESTS=ON"

From ac9b3f3cccd140dc56a6d42fd2ec70d3f671e950 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:29 +0700
Subject: [PATCH 08/44] qt6-shadertools: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-shadertools/template b/srcpkgs/qt6-shadertools/template
index 815bfca3047f73..0357e1abd4c442 100644
--- a/srcpkgs/qt6-shadertools/template
+++ b/srcpkgs/qt6-shadertools/template
@@ -1,17 +1,17 @@
 # Template file for 'qt6-shadertools'
 pkgname=qt6-shadertools
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base"
-makedepends="qt6-base-devel"
+makedepends="qt6-base-private-devel"
 depends="libqt6shadertools>=${version}_${revision}"
 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=3690327dc550144b8102be2bb7f6dc995ccbe3584041094ad021a83737ef9875
+checksum=edfa34c0ac8c00fcaa949df1d8e7a77d89dadd6386e683ce6c3e3b117e2f7cc1
 
 if [ "$CROSS_BUILD" ]; then
 	configure_args="-DQT_FORCE_BUILD_TOOLS=true"

From 811292bf85f2b889a09738060184b048065b9aa3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:29 +0700
Subject: [PATCH 09/44] qt6-svg: update to 6.7.2.

---
 ...nullptr-dereference-with-invalid-SVG.patch | 29 -------------------
 srcpkgs/qt6-svg/template                      |  6 ++--
 2 files changed, 3 insertions(+), 32 deletions(-)
 delete mode 100644 srcpkgs/qt6-svg/patches/Fix-nullptr-dereference-with-invalid-SVG.patch

diff --git a/srcpkgs/qt6-svg/patches/Fix-nullptr-dereference-with-invalid-SVG.patch b/srcpkgs/qt6-svg/patches/Fix-nullptr-dereference-with-invalid-SVG.patch
deleted file mode 100644
index 9f0de172e652a8..00000000000000
--- a/srcpkgs/qt6-svg/patches/Fix-nullptr-dereference-with-invalid-SVG.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From edc8ca7f1e45302223b4b7962a57a30918f84c8d Mon Sep 17 00:00:00 2001
-From: Paul Olav Tvete <paul.tvete@qt.io>
-Date: Tue, 10 Oct 2023 10:14:22 +0200
-Subject: Fix nullptr dereference with invalid SVG
-
-Fixes: QTBUG-117944
-Pick-to: 6.6 6.5 6.2
-Change-Id: I9059dc28c750fc0585f1fb982152b211c323c6cd
-Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
----
- src/svg/qsvghandler.cpp | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/svg/qsvghandler.cpp b/src/svg/qsvghandler.cpp
-index e6877ac..1cffbc3 100644
---- a/src/svg/qsvghandler.cpp
-+++ b/src/svg/qsvghandler.cpp
-@@ -3620,6 +3620,8 @@ void QSvgHandler::init()
- 
- static bool detectCycles(const QSvgNode *node, QList<const QSvgUse *> active = {})
- {
-+    if (Q_UNLIKELY(!node))
-+        return false;
-     switch (node->type()) {
-     case QSvgNode::DOC:
-     case QSvgNode::G:
--- 
-cgit v1.2.3
-
diff --git a/srcpkgs/qt6-svg/template b/srcpkgs/qt6-svg/template
index 8f545f8a309b79..fecf0655fdb832 100644
--- a/srcpkgs/qt6-svg/template
+++ b/srcpkgs/qt6-svg/template
@@ -1,16 +1,16 @@
 # Template file for 'qt6-svg'
 pkgname=qt6-svg
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="qt6-base perl"
-makedepends="qt6-base-devel"
+makedepends="qt6-base-private-devel"
 short_desc="Cross-platform application and UI framework (QT6) - qt6-svg component"
 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=33da25fef51102f564624a7ea3e57cb4a0a31b7b44783d1af5749ac36d3c72de
+checksum=fb0d1286a35be3583fee34aeb5843c94719e07193bdf1d4d8b0dc14009caef01
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args="-DQT_BUILD_TESTS=ON"

From 00865c1490321119c3501840846031d91d8fae83 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:30 +0700
Subject: [PATCH 10/44] qt6-tools: update to 6.7.2.

---
 srcpkgs/qt6-tools-private-devel               |  1 +
 srcpkgs/qt6-tools/patches/gumbo.patch         | 15 ----
 .../qt6-tools/patches/no-litehtml-test.patch  | 11 ---
 srcpkgs/qt6-tools/patches/qdoc-location.patch | 89 ++++++++++++++++---
 srcpkgs/qt6-tools/template                    | 35 ++++++--
 5 files changed, 109 insertions(+), 42 deletions(-)
 create mode 120000 srcpkgs/qt6-tools-private-devel
 delete mode 100644 srcpkgs/qt6-tools/patches/gumbo.patch
 delete mode 100644 srcpkgs/qt6-tools/patches/no-litehtml-test.patch

diff --git a/srcpkgs/qt6-tools-private-devel b/srcpkgs/qt6-tools-private-devel
new file mode 120000
index 00000000000000..d2de59aba4535f
--- /dev/null
+++ b/srcpkgs/qt6-tools-private-devel
@@ -0,0 +1 @@
+qt6-tools
\ No newline at end of file
diff --git a/srcpkgs/qt6-tools/patches/gumbo.patch b/srcpkgs/qt6-tools/patches/gumbo.patch
deleted file mode 100644
index 42c8e40203c28e..00000000000000
--- a/srcpkgs/qt6-tools/patches/gumbo.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- qttools-everywhere-src-6.4.0/src/assistant/qlitehtml/src/CMakeLists.txt	2022-09-23 13:50:40.000000000 +0200
-+++ -	2022-11-03 01:17:21.262108484 +0100
-@@ -30,12 +30,6 @@
-       PROPERTIES
-         QT_COMPILE_OPTIONS_DISABLE_WARNINGS ON
-     )
--    set_target_properties(
--      gumbo
--      PROPERTIES
--        QT_COMPILE_OPTIONS_DISABLE_WARNINGS ON
--    )
--
-     set(CMAKE_POSITION_INDEPENDENT_CODE "${ORIG_FPIC}")
-     set(BUILD_SHARED_LIBS ${ORIG_BUILD_SHARED_LIBS})
-     # force optimized litehtml even in debug
diff --git a/srcpkgs/qt6-tools/patches/no-litehtml-test.patch b/srcpkgs/qt6-tools/patches/no-litehtml-test.patch
deleted file mode 100644
index 2cbfac5de82d54..00000000000000
--- a/srcpkgs/qt6-tools/patches/no-litehtml-test.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- qt6-tools-6.4.2.orig/src/assistant/qlitehtml/src/3rdparty/litehtml/CMakeLists.txt
-+++ qt6-tools-6.4.2/src/assistant/qlitehtml/src/3rdparty/litehtml/CMakeLists.txt
-@@ -191,7 +191,7 @@ set_source_files_properties(${CMAKE_CURR
- 
- # Tests
- 
--if (BUILD_TESTING)
-+if (FALSE)
-     include(FetchContent)
-     FetchContent_Declare(
-       googletest
diff --git a/srcpkgs/qt6-tools/patches/qdoc-location.patch b/srcpkgs/qt6-tools/patches/qdoc-location.patch
index 6d7c0ea345374e..8e4df56a00b404 100644
--- a/srcpkgs/qt6-tools/patches/qdoc-location.patch
+++ b/srcpkgs/qt6-tools/patches/qdoc-location.patch
@@ -1,14 +1,83 @@
---- qt6-tools-6.4.2.orig/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp
-+++ qt6-tools-6.4.2/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp
-@@ -74,7 +74,10 @@ private:
- void tst_generatedOutput::initTestCase()
+--- a/tests/auto/linguist/lconvert/tst_lconvert.cpp
++++ b/tests/auto/linguist/lconvert/tst_lconvert.cpp
+@@ -4,6 +4,16 @@
+ #include <QtTest/QtTest>
+ #include <QtCore/QFile>
+ 
++namespace {
++QString xbinpath()
++{
++    char *build_binpath = getenv("QT_BUILD_BIN_PATH");
++    if (build_binpath && *build_binpath)
++        return build_binpath;
++    return QLibraryInfo::path(QLibraryInfo::BinariesPath);
++}
++}
++
+ class tst_lconvert : public QObject
+ {
+     Q_OBJECT
+@@ -11,7 +21,7 @@ class tst_lconvert : public QObject
+ public:
+     tst_lconvert()
+       : dataDir(QFINDTESTDATA("data/"))
+-      , lconvert(QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/lconvert") {}
++      , lconvert(xbinpath() + QStringLiteral("/lconvert")) {}
+ 
+ private slots:
+     void initTestCase();
+--- a/tests/auto/linguist/lrelease/tst_lrelease.cpp
++++ b/tests/auto/linguist/lrelease/tst_lrelease.cpp
+@@ -8,13 +8,22 @@
+ 
+ #include <QtTest/QtTest>
+ 
++namespace {
++QString xbinpath()
++{
++    char *build_binpath = getenv("QT_BUILD_BIN_PATH");
++    if (build_binpath && *build_binpath)
++        return build_binpath;
++    return QLibraryInfo::path(QLibraryInfo::BinariesPath);
++}
++}
+ class tst_lrelease : public QObject
+ {
+     Q_OBJECT
+ 
+ public:
+     tst_lrelease()
+-         : lrelease(QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/lrelease")
++         : lrelease(xbinpath() + QStringLiteral("/lrelease"))
+          , dataDir(QFINDTESTDATA("testdata/"))
+     {}
+ 
+--- a/tests/auto/linguist/lupdate/tst_lupdate.cpp
++++ b/tests/auto/linguist/lupdate/tst_lupdate.cpp
+@@ -44,7 +44,10 @@ private:
+ 
+ tst_lupdate::tst_lupdate()
+ {
+-    QString binPath = QLibraryInfo::path(QLibraryInfo::BinariesPath);
++    auto binPath = QLibraryInfo::path(QLibraryInfo::BinariesPath);
++    char *build_binpath = getenv("QT_BUILD_BIN_PATH");
++    if (build_binpath && *build_binpath)
++        binPath = build_binpath;
+     m_cmdLupdate = binPath + QLatin1String("/lupdate");
+     m_basePath = QFINDTESTDATA("testdata/");
+ }
+--- a/tests/auto/qtdiag/tst_qtdiag.cpp
++++ b/tests/auto/qtdiag/tst_qtdiag.cpp
+@@ -21,7 +21,11 @@ private:
+ 
+ void tst_QtDiag::initTestCase()
  {
-     // Build the path to the QDoc binary the same way moc tests do for moc.
--    const auto binpath = QLibraryInfo::path(QLibraryInfo::BinariesPath);
+-    QString binary = QLibraryInfo::path(QLibraryInfo::BinariesPath) + QStringLiteral("/qtdiag");
 +    auto binpath = QLibraryInfo::path(QLibraryInfo::BinariesPath);
 +    char *build_binpath = getenv("QT_BUILD_BIN_PATH");
 +    if (build_binpath && *build_binpath)
-+    	    binpath = build_binpath;
-     const auto extension = QSysInfo::productType() == "windows" ? ".exe" : "";
-     m_qdoc = binpath + QLatin1String("/qdoc") + extension;
-     m_expectedDir.setPath(QFINDTESTDATA("expected_output"));
++        binpath = build_binpath;
++    QString binary = binpath + QStringLiteral("/qtdiag");
+ #  ifdef Q_OS_WIN
+     binary += QStringLiteral(".exe");
+ #  endif
diff --git a/srcpkgs/qt6-tools/template b/srcpkgs/qt6-tools/template
index 986db5dffd2393..5fde45439cdc4a 100644
--- a/srcpkgs/qt6-tools/template
+++ b/srcpkgs/qt6-tools/template
@@ -1,33 +1,42 @@
 # Template file for 'qt6-tools'
 pkgname=qt6-tools
-version=6.6.0
-revision=2
+version=6.7.2
+revision=1
 build_style=cmake
 configure_args="-DEXTERNAL_GUMBO=ON -DLITEHTML_UTF8=ON -DUSE_ICU=ON
  -DQT_BUILD_SHARED_LIBS=ON -DQT_FEATURE_assistant=ON
- -DQT_FEATURE_pixeltool=ON
+ -DQT_FEATURE_pixeltool=ON -DLITEHTML_BUILD_TESTING=OFF
  -DQT_FEATURE_distancefieldgenerator=ON"
 hostmakedepends="qt6-base perl qt6-plugin-sqlite clang17 clang-tools-extra17
  qt6-declarative-host-tools"
-makedepends="qt6-base-devel qt6-plugin-sqlite qt6-declarative-devel
+makedepends="qt6-base-private-devel qt6-plugin-sqlite qt6-declarative-private-devel
  gumbo-parser-devel icu-devel llvm17-devel"
 short_desc="Cross-platform application and UI framework (QT6) - qt6-tools component"
 maintainer="John <me@johnnynator.dev>"
 license="custom: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=4e9feebc142bbb6e453e1dc3277e09ec45c8ef081b5ee2a029e6684b5905ba99
+checksum=58e855ad1b2533094726c8a425766b63a04a0eede2ed85086860e54593aa4b2a
 
 if [ "$CROSS_BUILD" ]; then
 	configure_args+=" -DQT_FORCE_BUILD_TOOLS=TRUE"
 	hostmakedepends+=" qt6-tools"
 fi
-
+case "$XBPS_TARGET_MACHINE" in
+	x86_64*|aarch64*)
+		makedepends+=" libomp-devel" ;;
+esac
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args+=" -DQT_BUILD_TESTS=ON"
 fi
 
+subpackages="qt6-designer qt6-help qt6-ui-tools qt6-tools-private-devel qt6-tools-devel"
+
+post_patch() {
+	vsed -i -e 's/gumbo/litehtml/' src/assistant/qlitehtml/src/CMakeLists.txt
+}
+
 post_install() {
 	vlicense LICENSES/Qt-GPL-exception-1.0.txt
 }
@@ -65,6 +74,20 @@ qt6-ui-tools_package() {
 	}
 }
 
+qt6-tools-private-devel_package() {
+	depends="qt6-tools-devel>=${version}_${revision}"
+	short_desc+=" - private development files"
+	pkg_install() {
+		for dir in $(cd ${DESTDIR} && find usr/include -type d -name private); do
+			vmove "$dir"
+		done
+		vmove "usr/lib/cmake/*Private"
+		vmove "usr/lib/qt6/metatypes/*private_*_metatypes.json"
+		vmove "usr/lib/qt6/mkspecs/modules/*_private.pri"
+		vmove "usr/lib/qt6/modules/*Private.json"
+	}
+}
+
 qt6-tools-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision} qt6-base-devel>=${version}_1"
 	short_desc+=" - development files"

From febdc90f553dd3e9b2c43bc90f249c01a4c5a4ca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:30 +0700
Subject: [PATCH 11/44] qt6-translations: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-translations/template b/srcpkgs/qt6-translations/template
index 85f83d0a4879cc..3a87df627a2f2e 100644
--- a/srcpkgs/qt6-translations/template
+++ b/srcpkgs/qt6-translations/template
@@ -1,13 +1,20 @@
 # Template file for 'qt6-translations'
 pkgname=qt6-translations
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
-hostmakedepends="qt6-base qt6-tools perl"
-makedepends="qt6-base-devel qt6-tools-devel"
+hostmakedepends="qt6-base-devel qt6-tools-devel perl"
 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=a0d89a236f64b810eb0fe4ae1e90db22b0e86263521b35f89e69f1392815078c
+checksum=9845780b5dc1b7279d57836db51aeaf2e4a1160c42be09750616f39157582ca9
+
+do_configure() {
+	rm -rf build
+	mkdir build
+	cd build
+	unset CC CXX CFLAGS CXXFLAGS LD LDFLAGS
+	cmake -DCMAKE_BUILD_TYPE=None -GNinja ..
+}

From 78649be6a55d3bb8af0172a0381f16444ab0f190 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:30 +0700
Subject: [PATCH 12/44] qt6-wayland: update to 6.7.2.

---
 srcpkgs/qt6-wayland-private-devel |  1 +
 srcpkgs/qt6-wayland/template      | 24 +++++++++++++++++++-----
 2 files changed, 20 insertions(+), 5 deletions(-)
 create mode 120000 srcpkgs/qt6-wayland-private-devel

diff --git a/srcpkgs/qt6-wayland-private-devel b/srcpkgs/qt6-wayland-private-devel
new file mode 120000
index 00000000000000..c4dec18ea9a04a
--- /dev/null
+++ b/srcpkgs/qt6-wayland-private-devel
@@ -0,0 +1 @@
+qt6-wayland
\ No newline at end of file
diff --git a/srcpkgs/qt6-wayland/template b/srcpkgs/qt6-wayland/template
index ef4dc11a9491ae..1abb9396baf1a1 100644
--- a/srcpkgs/qt6-wayland/template
+++ b/srcpkgs/qt6-wayland/template
@@ -1,12 +1,12 @@
 # Template file for 'qt6-wayland'
 pkgname=qt6-wayland
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="qt6-base perl pkg-config wayland-devel qt6-declarative-host-tools"
 # XXX: Qml as optional dep
-makedepends="qt6-base-devel wayland-devel libxkbcommon-devel
- qt6-declarative-devel
+makedepends="qt6-base-private-devel wayland-devel libxkbcommon-devel
+ qt6-declarative-private-devel
  libXcomposite-devel MesaLib-devel Vulkan-Headers libdrm-devel"
 checkdepends="dbus mesa-dri"
 short_desc="Cross-platform application and UI framework - Wayland"
@@ -14,9 +14,9 @@ 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=30c3d82d85d050c83370710a26d12c802199c51eba5c2726e9d6243edd03b7e8
+checksum=a2a057e1dd644bd44abb9990fecc194b2e25c2e0f39e81aa9fee4c1e5e2a8a5b
 
-subpackages="qt6-wayland-tools qt6-wayland-devel"
+subpackages="qt6-wayland-tools qt6-wayland-private-devel qt6-wayland-devel"
 
 if [ "$CROSS_BUILD" ]; then
 	configure_args="-DQT_FORCE_BUILD_TOOLS=true"
@@ -37,6 +37,20 @@ qt6-wayland-tools_package() {
 	}
 }
 
+qt6-wayland-private-devel_package() {
+	depends="qt6-wayland-devel>=${version}_${revision}"
+	short_desc+=" - private development files"
+	pkg_install() {
+		for dir in $(cd ${DESTDIR} && find usr/include -type d -name private); do
+			vmove "$dir"
+		done
+		vmove "usr/lib/cmake/*Private"
+		vmove "usr/lib/qt6/metatypes/*private_*_metatypes.json"
+		vmove "usr/lib/qt6/mkspecs/modules/*_private.pri"
+		vmove "usr/lib/qt6/modules/*Private.json"
+	}
+}
+
 qt6-wayland-devel_package() {
 	depends="qt6-wayland-tools>=${version}_${revision} qt6-base-devel>=${version}_1"
 	short_desc+=" - development files"

From 33b2a18e8c6f483d58830e648b13ac5e00713e77 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:30 +0700
Subject: [PATCH 13/44] qt6-webchannel: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-webchannel/template b/srcpkgs/qt6-webchannel/template
index 1718abb31b7e0d..4a867790d99cf2 100644
--- a/srcpkgs/qt6-webchannel/template
+++ b/srcpkgs/qt6-webchannel/template
@@ -1,16 +1,17 @@
 # Template file for 'qt6-webchannel'
 pkgname=qt6-webchannel
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base qt6-declarative-host-tools"
-makedepends="qt6-base-devel qt6-declarative-devel qt6-websockets-devel"
+makedepends="qt6-base-private-devel qt6-declarative-private-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/official_releases/qt/${version%.*}/${version}/submodules/qtwebchannel-everywhere-src-${version}.tar.xz"
-checksum=fddcb38e6d5843f9c7570654f1a12aaf0086e5a01f7bf3cf170064fcc5a3f51c
+checksum=ac5d96607b10e7de546eaf93bb9f65c0fd631ef9b91ef8a794e26fd57db4501c
 
 do_check() {
 	cd build

From fc1aadad925d9c3639ed4ce2b3ba1219c5a76938 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:30 +0700
Subject: [PATCH 14/44] qt6-3d: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-3d/template b/srcpkgs/qt6-3d/template
index e20bcf8ad42fdc..6a61ebb2e1f1d2 100644
--- a/srcpkgs/qt6-3d/template
+++ b/srcpkgs/qt6-3d/template
@@ -1,16 +1,17 @@
 # Template file for 'qt6-3d'
 pkgname=qt6-3d
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-declarative-host-tools"
-makedepends="qt6-declarative-devel qt6-shadertools-devel libassimp-devel"
+makedepends="qt6-declarative-private-devel qt6-shadertools-devel libassimp-devel
+ qt6-base-private-devel"
 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=0da87a46217f4d72f6d0de9768605d5325ef3d093f73a5e0d73dd88e99c1fc2a
+checksum=8bc087d904973133186e58471845c5df376bbfdcfcf079fda287e1cda27c8adf
 
 qt6-3d-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision}"

From 0a8ae1dd7956a9ea47203a836ab94ec5e7623176 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:30 +0700
Subject: [PATCH 15/44] qt6-pdf: update to 6.7.2.

---
 .../qt6-pdf/patches/0001-None-no-debug.patch  |    6 +-
 srcpkgs/qt6-pdf/patches/0003-cross-hack.patch |   10 +-
 ....patch => 0004-no-glibc-cmake-check.patch} |    0
 .../qt6-pdf/patches/0004-riscv-angle.patch    |   28 -
 .../patches/0004-riscv-angle.patch.args       |    1 -
 .../qt6-pdf/patches/0005-riscv-crashpad.patch |  778 -------
 .../patches/0005-riscv-crashpad.patch.args    |    1 -
 .../qt6-pdf/patches/0006-riscv-dav1d.patch    |   44 -
 .../patches/0006-riscv-dav1d.patch.args       |    1 -
 .../qt6-pdf/patches/0007-riscv-sandbox.patch  | 1939 -----------------
 .../patches/0007-riscv-sandbox.patch.args     |    1 -
 .../patches/0008-rsicv-allocator.patch        |   11 -
 ...ERT-roll-src-third_party-ffmpeg-m102.patch |   52 +
 .../patches/0104-angle-wayland-include.patch  |   37 +
 ...mium-105.0.5195.52-python-six-1.16.0.patch |   84 +
 .../patches/0106-chromium-system-nodejs.patch |   29 -
 .../0107-chromium-114-maldoca-include.patch   |   20 +
 ...0108-chromium-115-compiler-SkColor4f.patch |   26 +
 .../0108-chromium-cursed^Uscoped_file.patch   |   18 -
 .../patches/0110-chromium-117-typename.patch  |   91 +
 .../patches/0111-chromium-cstdint.patch       |   10 -
 ...12-chromium-118-missing-header-files.patch |  379 ++++
 ...chromium-118-no_matching_constructor.patch |  410 ++++
 ...-chromium-118-python-3.12-deprecated.patch |   98 +
 ...karound_clang_bug-structured_binding.patch |   25 +
 ...0117-chromium-i686-vaapi-fpermissive.patch |   23 +
 .../patches/0117-chromium-musl-resolver.patch |   60 -
 ...chromium-revert-drop-of-system-java.patch} |    4 +-
 .../patches/0119-chromium-system-nodejs.patch |   20 +
 ...oss-build.patch => 0120-cross-build.patch} |   20 +-
 .../patches/0121-fc-cache-version.patch       |   13 +
 ...-aarch64-musl-memory-tagging-macros.patch} |    8 +-
 .../0123-fix-argument_spec-isnan-isinf.patch  |   11 +
 .../0124-fix-constexpr-narrowing.patch        |   21 +
 .../patches/0125-fix-dawn-platform.patch      |   55 +
 ...ix-missing-TEMP_FAILURE_RETRY-macro.patch} |    4 +-
 ...128-fix-missing-cstdint-include-musl.patch |   10 +
 .../0129-chromium-sandbox-shed_getparam.patch |   17 -
 ...9-fix-musl-missing-unistd_h-include.patch} |    2 +-
 ...130-fix-perfetto-GetThreadName-musl.patch} |    4 +-
 ...131-fix-swiftshader-llvm-musl-config.patch |    0
 ...bc-malloc.patch => 0132-libc_malloc.patch} |   10 +-
 .../patches/0133-musl-no-execinfo.patch       |   68 +
 ...info.patch => 0134-musl-no-mallinfo.patch} |  101 +-
 .../patches/0135-musl-partition-atfork.patch  |   11 +
 ...v8-monotonic-pthread-cont_timedwait.patch} |    4 +-
 ...context.patch => 0137-no-getcontext.patch} |    4 +-
 srcpkgs/qt6-pdf/patches/0138-no-mte.patch     |   11 +
 srcpkgs/qt6-pdf/patches/0139-old-clang.patch  |   11 +
 .../0140-reenable-linux-i686-builds.patch     |   19 +
 ...h => 0141-remove-sys-cdefs-includes.patch} |    8 +-
 .../patches/0142-sandbox-membarrier.patch     |   10 +
 srcpkgs/qt6-pdf/patches/0143-sndio.patch      |  849 ++++++++
 ...155-systypes.patch => 0144-systypes.patch} |    2 +-
 ...ndle-ffmpeg-av_stream_get_first_dts.patch} |    4 +-
 ...h => 0146-unbundled-cross-toolchain.patch} |    4 +-
 .../qt6-pdf/patches/0148-webrtc-size_t.patch  |   10 +
 .../patches/0152-chromium-webrtc-size_t.patch |   10 -
 .../patches/0153-chromium-webrtc-size_t.patch |   16 -
 .../qt6-pdf/patches/0154-chromium-uit_t.patch |   11 -
 .../patches/0300-chromium-musl-hacks.patch    |   38 -
 .../patches/0301-chromium-musl-sandbox.patch  |   70 -
 .../qt6-pdf/patches/0700-armv7l-neon.patch    |   10 -
 ...-chromium-musl-cross-no-asm_ptrace_h.patch |   30 -
 .../0751-chromium-musl-arm-user_vfp.patch     |   20 -
 .../0752-chromium-musl-arm-elf_auxv_t.patch   |   18 -
 .../0753-chromium-musl-32-bit-fstat.patch     |   13 -
 .../qt6-pdf/patches/0800-musl-sandbox.patch   |  121 +
 ...hing.patch => 0801-musl-tid-caching.patch} |   11 +-
 .../0802-musl-no-res-ninit-nclose.patch       |   20 +
 .../qt6-pdf/patches/0803-musl-include.patch   |   10 +
 srcpkgs/qt6-pdf/patches/0998-cross.patch      |   18 -
 .../patches/0998-example-cross-build.patch    |   11 +
 srcpkgs/qt6-pdf/patches/0999-python3.12.patch |   20 -
 .../1000-we-know-what-will-be-supported.patch |   18 +-
 ...tial-migration-from-imp-to-importlib.patch |   36 -
 .../qt6-pdf/patches/fix-libxml2-2.12.patch    |   34 -
 .../qt6-pdf/patches/pipewire-fcntl-call.patch |   18 -
 srcpkgs/qt6-pdf/template                      |   12 +-
 79 files changed, 2645 insertions(+), 3417 deletions(-)
 rename srcpkgs/qt6-pdf/patches/{0050-no-glibc-cmake-check.patch => 0004-no-glibc-cmake-check.patch} (100%)
 delete mode 100644 srcpkgs/qt6-pdf/patches/0004-riscv-angle.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0004-riscv-angle.patch.args
 delete mode 100644 srcpkgs/qt6-pdf/patches/0005-riscv-crashpad.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0005-riscv-crashpad.patch.args
 delete mode 100644 srcpkgs/qt6-pdf/patches/0006-riscv-dav1d.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0006-riscv-dav1d.patch.args
 delete mode 100644 srcpkgs/qt6-pdf/patches/0007-riscv-sandbox.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0007-riscv-sandbox.patch.args
 delete mode 100644 srcpkgs/qt6-pdf/patches/0008-rsicv-allocator.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0100-REVERT-roll-src-third_party-ffmpeg-m102.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0104-angle-wayland-include.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0106-chromium-105.0.5195.52-python-six-1.16.0.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0106-chromium-system-nodejs.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0107-chromium-114-maldoca-include.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0108-chromium-115-compiler-SkColor4f.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0108-chromium-cursed^Uscoped_file.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0110-chromium-117-typename.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0111-chromium-cstdint.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0112-chromium-118-missing-header-files.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0113-chromium-118-no_matching_constructor.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0114-chromium-118-python-3.12-deprecated.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0116-chromium-118-workaround_clang_bug-structured_binding.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0117-chromium-i686-vaapi-fpermissive.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0117-chromium-musl-resolver.patch
 rename srcpkgs/qt6-pdf/patches/{0105-chromium-revert-drop-of-system-java.patch => 0118-chromium-revert-drop-of-system-java.patch} (76%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0119-chromium-system-nodejs.patch
 rename srcpkgs/qt6-pdf/patches/{0107-chromium-cross-build.patch => 0120-cross-build.patch} (72%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0121-fc-cache-version.patch
 rename srcpkgs/qt6-pdf/patches/{0109-chromium-aarch64-musl-memory-tagging.patch => 0122-fix-aarch64-musl-memory-tagging-macros.patch} (73%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0123-fix-argument_spec-isnan-isinf.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0124-fix-constexpr-narrowing.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0125-fix-dawn-platform.patch
 rename srcpkgs/qt6-pdf/patches/{0110-chromium-fix-missing-TEMP_FAILURE_RETRY-macro.patch => 0127-fix-missing-TEMP_FAILURE_RETRY-macro.patch} (78%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0128-fix-missing-cstdint-include-musl.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0129-chromium-sandbox-shed_getparam.patch
 rename srcpkgs/qt6-pdf/patches/{0112-chromium-unistd.h.patch => 0129-fix-musl-missing-unistd_h-include.patch} (94%)
 rename srcpkgs/qt6-pdf/patches/{0116-chromium-musl-get-thread-name.patch => 0130-fix-perfetto-GetThreadName-musl.patch} (73%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0131-fix-swiftshader-llvm-musl-config.patch
 rename srcpkgs/qt6-pdf/patches/{0120-chromium-libc-malloc.patch => 0132-libc_malloc.patch} (66%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0133-musl-no-execinfo.patch
 rename srcpkgs/qt6-pdf/patches/{0302-chromium-no-mallinfo.patch => 0134-musl-no-mallinfo.patch} (50%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0135-musl-partition-atfork.patch
 rename srcpkgs/qt6-pdf/patches/{0122-chromium-condition_var.patch => 0136-musl-v8-monotonic-pthread-cont_timedwait.patch} (82%)
 rename srcpkgs/qt6-pdf/patches/{0123-chromium-musl-no-getcontext.patch => 0137-no-getcontext.patch} (72%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0138-no-mte.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0139-old-clang.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0140-reenable-linux-i686-builds.patch
 rename srcpkgs/qt6-pdf/patches/{0126-chromium-no-cdefs.patch => 0141-remove-sys-cdefs-includes.patch} (65%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0142-sandbox-membarrier.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0143-sndio.patch
 rename srcpkgs/qt6-pdf/patches/{0155-systypes.patch => 0144-systypes.patch} (93%)
 rename srcpkgs/qt6-pdf/patches/{0150-chromium-unbundle-ffmpeg-av_stream_get_first_dts.patch => 0145-unbundle-ffmpeg-av_stream_get_first_dts.patch} (56%)
 rename srcpkgs/qt6-pdf/patches/{0151-chromium-unbundled-cross-toolchain.patch => 0146-unbundled-cross-toolchain.patch} (56%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0148-webrtc-size_t.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0152-chromium-webrtc-size_t.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0153-chromium-webrtc-size_t.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0154-chromium-uit_t.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0300-chromium-musl-hacks.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0301-chromium-musl-sandbox.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0700-armv7l-neon.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0750-chromium-musl-cross-no-asm_ptrace_h.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0751-chromium-musl-arm-user_vfp.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0752-chromium-musl-arm-elf_auxv_t.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0753-chromium-musl-32-bit-fstat.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0800-musl-sandbox.patch
 rename srcpkgs/qt6-pdf/patches/{0010-chromium-musl-tid-caching.patch => 0801-musl-tid-caching.patch} (92%)
 create mode 100644 srcpkgs/qt6-pdf/patches/0802-musl-no-res-ninit-nclose.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0803-musl-include.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0998-cross.patch
 create mode 100644 srcpkgs/qt6-pdf/patches/0998-example-cross-build.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/0999-python3.12.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/Partial-migration-from-imp-to-importlib.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/fix-libxml2-2.12.patch
 delete mode 100644 srcpkgs/qt6-pdf/patches/pipewire-fcntl-call.patch

diff --git a/srcpkgs/qt6-pdf/patches/0001-None-no-debug.patch b/srcpkgs/qt6-pdf/patches/0001-None-no-debug.patch
index b221fdcd392faa..b6596bd57f646c 100644
--- a/srcpkgs/qt6-pdf/patches/0001-None-no-debug.patch
+++ b/srcpkgs/qt6-pdf/patches/0001-None-no-debug.patch
@@ -1,6 +1,6 @@
---- qt6-webengine-6.4.2.orig/cmake/Functions.cmake
-+++ qt6-webengine-6.4.2/cmake/Functions.cmake
-@@ -820,6 +820,8 @@ macro(append_build_type_setup)
+--- a/cmake/Functions.cmake
++++ b/cmake/Functions.cmake
+@@ -844,6 +844,8 @@ macro(append_build_type_setup)
          endif()
      elseif(${config} STREQUAL "MinSizeRel")
          list(APPEND gnArgArg is_debug=false symbol_level=0 optimize_for_size=true)
diff --git a/srcpkgs/qt6-pdf/patches/0003-cross-hack.patch b/srcpkgs/qt6-pdf/patches/0003-cross-hack.patch
index a3f0a5791406be..f82133d6746fe3 100644
--- a/srcpkgs/qt6-pdf/patches/0003-cross-hack.patch
+++ b/srcpkgs/qt6-pdf/patches/0003-cross-hack.patch
@@ -1,10 +1,10 @@
---- qt6-webengine-6.4.2.orig/src/core/api/CMakeLists.txt
-+++ qt6-webengine-6.4.2/src/core/api/CMakeLists.txt
-@@ -51,6 +51,7 @@ qt_internal_add_module(WebEngineCore
+--- a/src/core/api/CMakeLists.txt
++++ b/src/core/api/CMakeLists.txt
+@@ -57,6 +57,7 @@ qt_internal_add_module(WebEngineCore
          Qt::Gui
          Qt::Network
          Qt::Quick
 +        X11
+     EXTRA_CMAKE_FILES
+         "${CMAKE_CURRENT_LIST_DIR}/${INSTALL_CMAKE_NAMESPACE}WebEngineCoreDeploySupport.cmake"
  )
- 
- set_target_properties(WebEngineCore PROPERTIES QTWEBENGINEPROCESS_NAME ${qtWebEngineProcessName})
diff --git a/srcpkgs/qt6-pdf/patches/0050-no-glibc-cmake-check.patch b/srcpkgs/qt6-pdf/patches/0004-no-glibc-cmake-check.patch
similarity index 100%
rename from srcpkgs/qt6-pdf/patches/0050-no-glibc-cmake-check.patch
rename to srcpkgs/qt6-pdf/patches/0004-no-glibc-cmake-check.patch
diff --git a/srcpkgs/qt6-pdf/patches/0004-riscv-angle.patch b/srcpkgs/qt6-pdf/patches/0004-riscv-angle.patch
deleted file mode 100644
index 1aceb6f2d229e9..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0004-riscv-angle.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Index: chromium-111.0.5563.64/third_party/angle/gni/angle.gni
-===================================================================
---- chromium-111.0.5563.64.orig/third_party/angle/gni/angle.gni
-+++ chromium-111.0.5563.64/third_party/angle/gni/angle.gni
-@@ -105,7 +105,8 @@ declare_args() {
- 
-   if (current_cpu == "arm64" || current_cpu == "x64" ||
-       current_cpu == "mips64el" || current_cpu == "s390x" ||
--      current_cpu == "ppc64" || current_cpu == "loong64") {
-+      current_cpu == "ppc64" || current_cpu == "loong64" ||
-+      current_cpu == "riscv64") {
-     angle_64bit_current_cpu = true
-   } else if (current_cpu == "arm" || current_cpu == "x86" ||
-              current_cpu == "mipsel" || current_cpu == "s390" ||
-Index: chromium-111.0.5563.64/third_party/angle/src/common/platform.h
-===================================================================
---- chromium-111.0.5563.64.orig/third_party/angle/src/common/platform.h
-+++ chromium-111.0.5563.64/third_party/angle/src/common/platform.h
-@@ -108,7 +108,7 @@
- #endif
- 
- // Mips and arm devices need to include stddef for size_t.
--#if defined(__mips__) || defined(__arm__) || defined(__aarch64__)
-+#if defined(__mips__) || defined(__arm__) || defined(__aarch64__) || defined(__riscv)
- #    include <stddef.h>
- #endif
- 
-
diff --git a/srcpkgs/qt6-pdf/patches/0004-riscv-angle.patch.args b/srcpkgs/qt6-pdf/patches/0004-riscv-angle.patch.args
deleted file mode 100644
index d5f38e354e7f00..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0004-riscv-angle.patch.args
+++ /dev/null
@@ -1 +0,0 @@
--Np1 --directory=src/3rdparty/chromium/
diff --git a/srcpkgs/qt6-pdf/patches/0005-riscv-crashpad.patch b/srcpkgs/qt6-pdf/patches/0005-riscv-crashpad.patch
deleted file mode 100644
index 012a38c3886594..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0005-riscv-crashpad.patch
+++ /dev/null
@@ -1,778 +0,0 @@
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/minidump/minidump_context.h
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/minidump/minidump_context.h
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/minidump/minidump_context.h
-@@ -637,6 +637,41 @@ struct MinidumpContextMIPS64 {
-   uint64_t fir;
- };
- 
-+//! \brief 64bit RISC-V-specifc flags for MinidumpContextRISCV64::context_flags.
-+//! Based on minidump_cpu_riscv64.h from breakpad
-+enum MinidumpContextRISCV64Flags : uint32_t {
-+  //! \brief Identifies the context structure as RISCV64.
-+  kMinidumpContextRISCV64 = 0x00080000,
-+
-+  //! \brief Indicates the validity of integer registers.
-+  //!
-+  //! Registers `x1`-`x31` and pc are valid.
-+  kMinidumpContextRISCV64Integer = kMinidumpContextRISCV64 | 0x00000002,
-+
-+  //! \brief Indicates the validity of floating point registers.
-+  //!
-+  //! Floating point registers `f0`-`f31`, and `fcsr` are valid
-+  kMinidumpContextRISCV64FloatingPoint = kMinidumpContextRISCV64 | 0x00000004,
-+
-+  //! \brief Indicates the validity of all registers.
-+  kMinidumpContextRISCV64All = kMinidumpContextRISCV64Integer |
-+                              kMinidumpContextRISCV64FloatingPoint,
-+};
-+
-+//! \brief A 64bit RISCV CPU context (register state) carried in a minidump file.
-+struct MinidumpContextRISCV64 {
-+  uint64_t context_flags;
-+
-+  //! \brief General purpose registers.
-+  uint64_t regs[32];
-+
-+  //! \brief FPU registers.
-+  uint64_t fpregs[32];
-+
-+  //! \brief FPU status register.
-+  uint64_t fcsr;
-+};
-+
- }  // namespace crashpad
- 
- #endif  // CRASHPAD_MINIDUMP_MINIDUMP_CONTEXT_H_
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/minidump/minidump_context_writer.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/minidump/minidump_context_writer.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/minidump/minidump_context_writer.cc
-@@ -102,6 +102,13 @@ MinidumpContextWriter::CreateFromSnapsho
-       break;
-     }
- 
-+    case kCPUArchitectureRISCV64: {
-+      context = std::make_unique<MinidumpContextRISCV64Writer>();
-+      reinterpret_cast<MinidumpContextRISCV64Writer*>(context.get())
-+          ->InitializeFromSnapshot(context_snapshot->riscv64);
-+      break;
-+    }
-+
-     default: {
-       LOG(ERROR) << "unknown context architecture "
-                  << context_snapshot->architecture;
-@@ -555,5 +562,42 @@ size_t MinidumpContextMIPS64Writer::Cont
-   DCHECK_GE(state(), kStateFrozen);
-   return sizeof(context_);
- }
-+
-+MinidumpContextRISCV64Writer::MinidumpContextRISCV64Writer()
-+    : MinidumpContextWriter(), context_() {
-+  context_.context_flags = kMinidumpContextRISCV64;
-+}
-+
-+MinidumpContextRISCV64Writer::~MinidumpContextRISCV64Writer() = default;
-+
-+void MinidumpContextRISCV64Writer::InitializeFromSnapshot(
-+    const CPUContextRISCV64* context_snapshot) {
-+  DCHECK_EQ(state(), kStateMutable);
-+  DCHECK_EQ(context_.context_flags, kMinidumpContextRISCV64);
-+
-+  context_.context_flags = kMinidumpContextRISCV64All;
-+
-+  static_assert(sizeof(context_.regs) == sizeof(context_snapshot->regs),
-+                "GPRs size mismatch");
-+  memcpy(context_.regs, context_snapshot->regs, sizeof(context_.regs));
-+
-+  static_assert(sizeof(context_.fpregs) == sizeof(context_snapshot->fpregs),
-+                "FPRs size mismatch");
-+  memcpy(context_.fpregs,
-+         context_snapshot->fpregs,
-+         sizeof(context_.fpregs));
-+  context_.fcsr = context_snapshot->fcsr;
-+}
-+
-+bool MinidumpContextRISCV64Writer::WriteObject(
-+    FileWriterInterface* file_writer) {
-+  DCHECK_EQ(state(), kStateWritable);
-+  return file_writer->Write(&context_, sizeof(context_));
-+}
-+
-+size_t MinidumpContextRISCV64Writer::ContextSize() const {
-+  DCHECK_GE(state(), kStateFrozen);
-+  return sizeof(context_);
-+}
- 
- }  // namespace crashpad
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/minidump/minidump_context_writer.h
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/minidump/minidump_context_writer.h
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/minidump/minidump_context_writer.h
-@@ -369,6 +369,49 @@ class MinidumpContextMIPS64Writer final
-   MinidumpContextMIPS64 context_;
- };
- 
-+//! \brief The writer for a MinidumpContextRISCV64 structure in a minidump file.
-+class MinidumpContextRISCV64Writer final : public MinidumpContextWriter {
-+ public:
-+  MinidumpContextRISCV64Writer();
-+
-+  MinidumpContextRISCV64Writer(const MinidumpContextRISCV64Writer&) = delete;
-+  MinidumpContextRISCV64Writer& operator=(const MinidumpContextRISCV64Writer&) =
-+      delete;
-+
-+  ~MinidumpContextRISCV64Writer() override;
-+
-+  //! \brief Initializes the MinidumpContextRISCV based on \a context_snapshot.
-+  //!
-+  //! \param[in] context_snapshot The context snapshot to use as source data.
-+  //!
-+  //! \note Valid in #kStateMutable. No mutation of context() may be done before
-+  //!     calling this method, and it is not normally necessary to alter
-+  //!     context() after calling this method.
-+  void InitializeFromSnapshot(const CPUContextRISCV64* context_snapshot);
-+
-+  //! \brief Returns a pointer to the context structure that this object will
-+  //!     write.
-+  //!
-+  //! \attention This returns a non-`const` pointer to this object’s private
-+  //!     data so that a caller can populate the context structure directly.
-+  //!     This is done because providing setter interfaces to each field in the
-+  //!     context structure would be unwieldy and cumbersome. Care must be taken
-+  //!     to populate the context structure correctly. The context structure
-+  //!     must only be modified while this object is in the #kStateMutable
-+  //!     state.
-+  MinidumpContextRISCV64* context() { return &context_; }
-+
-+ protected:
-+  // MinidumpWritable:
-+  bool WriteObject(FileWriterInterface* file_writer) override;
-+
-+  // MinidumpContextWriter:
-+  size_t ContextSize() const override;
-+
-+ private:
-+  MinidumpContextRISCV64 context_;
-+};
-+
- }  // namespace crashpad
- 
- #endif  // CRASHPAD_MINIDUMP_MINIDUMP_CONTEXT_WRITER_H_
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc
-@@ -175,6 +175,10 @@ std::string MinidumpMiscInfoDebugBuildSt
-   static constexpr char kCPU[] = "mips";
- #elif defined(ARCH_CPU_MIPS64EL)
-   static constexpr char kCPU[] = "mips64";
-+#elif defined(ARCH_CPU_RISCV32)
-+  static constexpr char kCPU[] = "riscv32";
-+#elif defined(ARCH_CPU_RISCV64)
-+  static constexpr char kCPU[] = "riscv64";
- #else
- #error define kCPU for this CPU
- #endif
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/capture_memory.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/capture_memory.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/capture_memory.cc
-@@ -117,6 +117,16 @@ void CaptureMemory::PointedToByContext(c
-   for (size_t i = 0; i < std::size(context.mipsel->regs); ++i) {
-     MaybeCaptureMemoryAround(delegate, context.mipsel->regs[i]);
-   }
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+  if (context.architecture == kCPUArchitectureRISCV64) {
-+    for (size_t i = 0; i < std::size(context.riscv64->regs); ++i) {
-+      MaybeCaptureMemoryAround(delegate, context.riscv64->regs[i]);
-+    }
-+  } else {
-+    for (size_t i = 0; i < std::size(context.riscv32->regs); ++i) {
-+      MaybeCaptureMemoryAround(delegate, context.riscv32->regs[i]);
-+    }
-+  }
- #else
- #error Port.
- #endif
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/cpu_architecture.h
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/cpu_architecture.h
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/cpu_architecture.h
-@@ -43,7 +43,13 @@ enum CPUArchitecture {
-   kCPUArchitectureMIPSEL,
- 
-   //! \brief 64-bit MIPSEL.
--  kCPUArchitectureMIPS64EL
-+  kCPUArchitectureMIPS64EL,
-+
-+  //! \brief 32-bit RISCV.
-+  kCPUArchitectureRISCV32,
-+
-+  //! \brief 64-bit RISCV.
-+  kCPUArchitectureRISCV64
- };
- 
- }  // namespace crashpad
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/cpu_context.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/cpu_context.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/cpu_context.cc
-@@ -226,10 +226,12 @@ bool CPUContext::Is64Bit() const {
-     case kCPUArchitectureX86_64:
-     case kCPUArchitectureARM64:
-     case kCPUArchitectureMIPS64EL:
-+    case kCPUArchitectureRISCV64:
-       return true;
-     case kCPUArchitectureX86:
-     case kCPUArchitectureARM:
-     case kCPUArchitectureMIPSEL:
-+    case kCPUArchitectureRISCV32:
-       return false;
-     default:
-       NOTREACHED();
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/cpu_context.h
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/cpu_context.h
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/cpu_context.h
-@@ -362,6 +362,20 @@ struct CPUContextMIPS64 {
-   uint64_t fir;
- };
- 
-+//! \brief A context structure carrying RISCV32 CPU state.
-+struct CPUContextRISCV32 {
-+  uint32_t regs[32];
-+  uint64_t fpregs[32];
-+  uint32_t fcsr;
-+};
-+
-+//! \brief A context structure carrying RISCV64 CPU state.
-+struct CPUContextRISCV64 {
-+  uint64_t regs[32];
-+  uint64_t fpregs[32];
-+  uint32_t fcsr;
-+};
-+
- //! \brief A context structure capable of carrying the context of any supported
- //!     CPU architecture.
- struct CPUContext {
-@@ -402,6 +416,8 @@ struct CPUContext {
-     CPUContextARM64* arm64;
-     CPUContextMIPS* mipsel;
-     CPUContextMIPS64* mips64;
-+    CPUContextRISCV32* riscv32;
-+    CPUContextRISCV64* riscv64;
-   };
- };
- 
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.cc
-@@ -266,6 +266,30 @@ void InitializeCPUContextARM64_OnlyFPSIM
-   context->fpcr = float_context.fpcr;
- }
- 
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+
-+template <typename Traits>
-+void InitializeCPUContextRISCV(
-+    const typename Traits::SignalThreadContext& thread_context,
-+    const typename Traits::SignalFloatContext& float_context,
-+    typename Traits::CPUContext* context) {
-+  static_assert(sizeof(context->regs) == sizeof(thread_context),
-+                "registers size mismatch");
-+  static_assert(sizeof(context->fpregs) == sizeof(float_context.f),
-+                "fp registers size mismatch");
-+  memcpy(&context->regs, &thread_context, sizeof(context->regs));
-+  memcpy(&context->fpregs, &float_context.f, sizeof(context->fpregs));
-+  context->fcsr = float_context.fcsr;
-+}
-+template void InitializeCPUContextRISCV<ContextTraits32>(
-+    const ContextTraits32::SignalThreadContext& thread_context,
-+    const ContextTraits32::SignalFloatContext& float_context,
-+    ContextTraits32::CPUContext* context);
-+template void InitializeCPUContextRISCV<ContextTraits64>(
-+    const ContextTraits64::SignalThreadContext& thread_context,
-+    const ContextTraits64::SignalFloatContext& float_context,
-+    ContextTraits64::CPUContext* context);
-+
- #endif  // ARCH_CPU_X86_FAMILY
- 
- }  // namespace internal
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.h
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.h
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.h
-@@ -174,6 +174,22 @@ void InitializeCPUContextMIPS(
- 
- #endif  // ARCH_CPU_MIPS_FAMILY || DOXYGEN
- 
-+#if defined(ARCH_CPU_RISCV_FAMILY) || DOXYGEN
-+
-+//! \brief Initializes a CPUContextRISCV structure from native context
-+//!     structures on Linux.
-+//!
-+//! \param[in] thread_context The native thread context.
-+//! \param[in] float_context The native float context.
-+//! \param[out] context The CPUContextRISCV structure to initialize.
-+template <typename Traits>
-+void InitializeCPUContextRISCV(
-+    const typename Traits::SignalThreadContext& thread_context,
-+    const typename Traits::SignalFloatContext& float_context,
-+    typename Traits::CPUContext* context);
-+
-+#endif  // ARCH_CPU_RISCV_FAMILY || DOXYGEN
-+
- }  // namespace internal
- }  // namespace crashpad
- 
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.cc
-@@ -325,6 +325,61 @@ bool ExceptionSnapshotLinux::ReadContext
-       reader, context_address, context_.mips64);
- }
- 
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+
-+template <typename Traits>
-+static bool ReadContext(ProcessReaderLinux* reader,
-+                        LinuxVMAddress context_address,
-+                        typename Traits::CPUContext* dest_context) {
-+  const ProcessMemory* memory = reader->Memory();
-+
-+  LinuxVMAddress gregs_address = context_address +
-+                                 offsetof(UContext<Traits>, mcontext) +
-+                                 offsetof(typename Traits::MContext, gregs);
-+
-+  typename Traits::SignalThreadContext thread_context;
-+  if (!memory->Read(gregs_address, sizeof(thread_context), &thread_context)) {
-+    LOG(ERROR) << "Couldn't read gregs";
-+    return false;
-+  }
-+
-+  LinuxVMAddress fpregs_address = context_address +
-+                                  offsetof(UContext<Traits>, mcontext) +
-+                                  offsetof(typename Traits::MContext, fpregs);
-+
-+  typename Traits::SignalFloatContext fp_context;
-+  if (!memory->Read(fpregs_address, sizeof(fp_context), &fp_context)) {
-+    LOG(ERROR) << "Couldn't read fpregs";
-+    return false;
-+  }
-+
-+  InitializeCPUContextRISCV<Traits>(thread_context, fp_context, dest_context);
-+
-+  return true;
-+}
-+
-+template <>
-+bool ExceptionSnapshotLinux::ReadContext<ContextTraits32>(
-+    ProcessReaderLinux* reader,
-+    LinuxVMAddress context_address) {
-+  context_.architecture = kCPUArchitectureRISCV32;
-+  context_.riscv32 = &context_union_.riscv32;
-+
-+  return internal::ReadContext<ContextTraits32>(
-+      reader, context_address, context_.riscv32);
-+}
-+
-+template <>
-+bool ExceptionSnapshotLinux::ReadContext<ContextTraits64>(
-+    ProcessReaderLinux* reader,
-+    LinuxVMAddress context_address) {
-+  context_.architecture = kCPUArchitectureRISCV64;
-+  context_.riscv64 = &context_union_.riscv64;
-+
-+  return internal::ReadContext<ContextTraits64>(
-+      reader, context_address, context_.riscv64);
-+}
-+
- #endif  // ARCH_CPU_X86_FAMILY
- 
- bool ExceptionSnapshotLinux::Initialize(
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.h
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.h
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.h
-@@ -89,6 +89,9 @@ class ExceptionSnapshotLinux final : pub
- #elif defined(ARCH_CPU_MIPS_FAMILY)
-     CPUContextMIPS mipsel;
-     CPUContextMIPS64 mips64;
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+    CPUContextRISCV32 riscv32;
-+    CPUContextRISCV64 riscv64;
- #endif
-   } context_union_;
-   CPUContext context_;
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/process_reader_linux.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/linux/process_reader_linux.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/process_reader_linux.cc
-@@ -127,6 +127,9 @@ void ProcessReaderLinux::Thread::Initial
- #elif defined(ARCH_CPU_MIPS_FAMILY)
-   stack_pointer = reader->Is64Bit() ? thread_info.thread_context.t64.regs[29]
-                                     : thread_info.thread_context.t32.regs[29];
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+  stack_pointer = reader->Is64Bit() ? thread_info.thread_context.t64.sp
-+                                    : thread_info.thread_context.t32.sp;
- #else
- #error Port.
- #endif
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/signal_context.h
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/linux/signal_context.h
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/signal_context.h
-@@ -422,6 +422,67 @@ static_assert(offsetof(UContext<ContextT
-               "context offset mismatch");
- #endif
- 
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+
-+struct MContext32 {
-+  uint32_t gregs[32];
-+  uint64_t fpregs[32];
-+  unsigned int fcsr;
-+};
-+
-+struct MContext64 {
-+  uint64_t gregs[32];
-+  uint64_t fpregs[32];
-+  unsigned int fcsr;
-+};
-+
-+struct ContextTraits32 : public Traits32 {
-+  using MContext = MContext32;
-+  using SignalThreadContext = ThreadContext::t32_t;
-+  using SignalFloatContext = FloatContext::f32_t;
-+  using CPUContext = CPUContextRISCV32;
-+};
-+
-+struct ContextTraits64 : public Traits64 {
-+  using MContext = MContext64;
-+  using SignalThreadContext = ThreadContext::t64_t;
-+  using SignalFloatContext = FloatContext::f64_t;
-+  using CPUContext = CPUContextRISCV64;
-+};
-+
-+template <typename Traits>
-+struct UContext {
-+  typename Traits::ULong flags;
-+  typename Traits::Address link;
-+  SignalStack<Traits> stack;
-+  Sigset<Traits> sigmask;
-+  char padding[128 - sizeof(sigmask)];
-+  typename Traits::Char_64Only padding2[8];
-+  typename Traits::MContext mcontext;
-+};
-+
-+#if defined(ARCH_CPU_RISCV32)
-+static_assert(offsetof(UContext<ContextTraits32>, mcontext) ==
-+                  offsetof(ucontext_t, uc_mcontext),
-+              "context offset mismatch");
-+static_assert(offsetof(UContext<ContextTraits32>, mcontext.gregs) ==
-+                  offsetof(ucontext_t, uc_mcontext.__gregs),
-+              "context offset mismatch");
-+static_assert(offsetof(UContext<ContextTraits32>, mcontext.fpregs) ==
-+                  offsetof(ucontext_t, uc_mcontext.__fpregs),
-+              "context offset mismatch");
-+#elif defined(ARCH_CPU_RISCV64)
-+static_assert(offsetof(UContext<ContextTraits64>, mcontext) ==
-+                  offsetof(ucontext_t, uc_mcontext),
-+              "context offset mismatch");
-+static_assert(offsetof(UContext<ContextTraits64>, mcontext.gregs) ==
-+                  offsetof(ucontext_t, uc_mcontext.__gregs),
-+              "context offset mismatch");
-+static_assert(offsetof(UContext<ContextTraits64>, mcontext.fpregs) ==
-+                  offsetof(ucontext_t, uc_mcontext.__fpregs),
-+              "context offset mismatch");
-+#endif
-+
- #else
- #error Port.
- #endif  // ARCH_CPU_X86_FAMILY
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/system_snapshot_linux.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/linux/system_snapshot_linux.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/system_snapshot_linux.cc
-@@ -205,6 +205,9 @@ CPUArchitecture SystemSnapshotLinux::Get
- #elif defined(ARCH_CPU_MIPS_FAMILY)
-   return process_reader_->Is64Bit() ? kCPUArchitectureMIPS64EL
-                                     : kCPUArchitectureMIPSEL;
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+  return process_reader_->Is64Bit() ? kCPUArchitectureRISCV64
-+                                    : kCPUArchitectureRISCV32;
- #else
- #error port to your architecture
- #endif
-@@ -220,6 +223,9 @@ uint32_t SystemSnapshotLinux::CPURevisio
- #elif defined(ARCH_CPU_MIPS_FAMILY)
-   // Not implementable on MIPS
-   return 0;
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+  // Not implementable on RISCV
-+  return 0;
- #else
- #error port to your architecture
- #endif
-@@ -240,6 +246,9 @@ std::string SystemSnapshotLinux::CPUVend
- #elif defined(ARCH_CPU_MIPS_FAMILY)
-   // Not implementable on MIPS
-   return std::string();
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+  // Not implementable on RISCV
-+  return std::string();
- #else
- #error port to your architecture
- #endif
-@@ -373,6 +382,9 @@ bool SystemSnapshotLinux::NXEnabled() co
- #elif defined(ARCH_CPU_MIPS_FAMILY)
-   // Not implementable on MIPS
-   return false;
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+  // Not implementable on RISCV
-+  return false;
- #else
- #error Port.
- #endif  // ARCH_CPU_X86_FAMILY
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.cc
-@@ -190,6 +190,22 @@ bool ThreadSnapshotLinux::Initialize(
-         thread.thread_info.float_context.f32,
-         context_.mipsel);
-   }
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+  if (process_reader->Is64Bit()) {
-+    context_.architecture = kCPUArchitectureRISCV64;
-+    context_.riscv64 = &context_union_.riscv64;
-+    InitializeCPUContextRISCV<ContextTraits64>(
-+	thread.thread_info.thread_context.t64,
-+	thread.thread_info.float_context.f64,
-+	context_.riscv64);
-+  } else {
-+    context_.architecture = kCPUArchitectureRISCV32;
-+    context_.riscv32 = &context_union_.riscv32;
-+    InitializeCPUContextRISCV<ContextTraits32>(
-+	thread.thread_info.thread_context.t32,
-+	thread.thread_info.float_context.f32,
-+	context_.riscv32);
-+  }
- #else
- #error Port.
- #endif
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.h
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.h
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.h
-@@ -74,6 +74,9 @@ class ThreadSnapshotLinux final : public
- #elif defined(ARCH_CPU_MIPS_FAMILY)
-     CPUContextMIPS mipsel;
-     CPUContextMIPS64 mips64;
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+    CPUContextRISCV32 riscv32;
-+    CPUContextRISCV64 riscv64;
- #else
- #error Port.
- #endif  // ARCH_CPU_X86_FAMILY
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/util/linux/ptracer.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/util/linux/ptracer.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/util/linux/ptracer.cc
-@@ -398,6 +398,51 @@ bool GetThreadArea64(pid_t tid,
-   return true;
- }
- 
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+
-+template <typename Destination>
-+bool GetRegisterSet(pid_t tid, int set, Destination* dest, bool can_log) {
-+  iovec iov;
-+  iov.iov_base = dest;
-+  iov.iov_len = sizeof(*dest);
-+  if (ptrace(PTRACE_GETREGSET, tid, reinterpret_cast<void*>(set), &iov) != 0) {
-+    PLOG_IF(ERROR, can_log) << "ptrace";
-+    return false;
-+  }
-+  if (iov.iov_len != sizeof(*dest)) {
-+    LOG_IF(ERROR, can_log) << "Unexpected registers size";
-+    return false;
-+  }
-+  return true;
-+}
-+
-+bool GetFloatingPointRegisters32(pid_t tid,
-+                                 FloatContext* context,
-+                                 bool can_log) {
-+  return false;
-+}
-+
-+bool GetFloatingPointRegisters64(pid_t tid,
-+                                 FloatContext* context,
-+                                 bool can_log) {
-+  return GetRegisterSet(tid, NT_PRFPREG, &context->f64.f, can_log);
-+}
-+
-+bool GetThreadArea32(pid_t tid,
-+                     const ThreadContext& context,
-+                     LinuxVMAddress* address,
-+                     bool can_log) {
-+  return false;
-+}
-+
-+bool GetThreadArea64(pid_t tid,
-+                     const ThreadContext& context,
-+                     LinuxVMAddress* address,
-+                     bool can_log) {
-+  *address = context.t64.tp;
-+  return true;
-+}
-+
- #else
- #error Port.
- #endif  // ARCH_CPU_X86_FAMILY
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/util/linux/thread_info.h
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/util/linux/thread_info.h
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/util/linux/thread_info.h
-@@ -79,6 +79,40 @@ union ThreadContext {
-     uint32_t cp0_status;
-     uint32_t cp0_cause;
-     uint32_t padding1_;
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+    // Reflects user_regs_struct in asm/ptrace.h.
-+    uint32_t pc;
-+    uint32_t ra;
-+    uint32_t sp;
-+    uint32_t gp;
-+    uint32_t tp;
-+    uint32_t t0;
-+    uint32_t t1;
-+    uint32_t t2;
-+    uint32_t s0;
-+    uint32_t s1;
-+    uint32_t a0;
-+    uint32_t a1;
-+    uint32_t a2;
-+    uint32_t a3;
-+    uint32_t a4;
-+    uint32_t a5;
-+    uint32_t a6;
-+    uint32_t a7;
-+    uint32_t s2;
-+    uint32_t s3;
-+    uint32_t s4;
-+    uint32_t s5;
-+    uint32_t s6;
-+    uint32_t s7;
-+    uint32_t s8;
-+    uint32_t s9;
-+    uint32_t s10;
-+    uint32_t s11;
-+    uint32_t t3;
-+    uint32_t t4;
-+    uint32_t t5;
-+    uint32_t t6;
- #else
- #error Port.
- #endif  // ARCH_CPU_X86_FAMILY
-@@ -132,6 +166,40 @@ union ThreadContext {
-     uint64_t cp0_badvaddr;
-     uint64_t cp0_status;
-     uint64_t cp0_cause;
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+    // Reflects user_regs_struct in asm/ptrace.h.
-+    uint64_t pc;
-+    uint64_t ra;
-+    uint64_t sp;
-+    uint64_t gp;
-+    uint64_t tp;
-+    uint64_t t0;
-+    uint64_t t1;
-+    uint64_t t2;
-+    uint64_t s0;
-+    uint64_t s1;
-+    uint64_t a0;
-+    uint64_t a1;
-+    uint64_t a2;
-+    uint64_t a3;
-+    uint64_t a4;
-+    uint64_t a5;
-+    uint64_t a6;
-+    uint64_t a7;
-+    uint64_t s2;
-+    uint64_t s3;
-+    uint64_t s4;
-+    uint64_t s5;
-+    uint64_t s6;
-+    uint64_t s7;
-+    uint64_t s8;
-+    uint64_t s9;
-+    uint64_t s10;
-+    uint64_t s11;
-+    uint64_t t3;
-+    uint64_t t4;
-+    uint64_t t5;
-+    uint64_t t6;
- #else
- #error Port.
- #endif  // ARCH_CPU_X86_FAMILY
-@@ -143,11 +211,12 @@ union ThreadContext {
-   using NativeThreadContext = user_regs;
- #elif defined(ARCH_CPU_MIPS_FAMILY)
- // No appropriate NativeThreadsContext type available for MIPS
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
- #else
- #error Port.
- #endif  // ARCH_CPU_X86_FAMILY || ARCH_CPU_ARM64
- 
--#if !defined(ARCH_CPU_MIPS_FAMILY)
-+#if !defined(ARCH_CPU_MIPS_FAMILY) && !defined(ARCH_CPU_RISCV_FAMILY)
- #if defined(ARCH_CPU_32_BITS)
-   static_assert(sizeof(t32_t) == sizeof(NativeThreadContext), "Size mismatch");
- #else  // ARCH_CPU_64_BITS
-@@ -218,6 +287,9 @@ union FloatContext {
-     } fpregs[32];
-     uint32_t fpcsr;
-     uint32_t fpu_id;
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+    uint64_t f[32];
-+    uint32_t fcsr;
- #else
- #error Port.
- #endif  // ARCH_CPU_X86_FAMILY
-@@ -252,6 +324,9 @@ union FloatContext {
-     double fpregs[32];
-     uint32_t fpcsr;
-     uint32_t fpu_id;
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
-+    uint64_t f[32];
-+    uint32_t fcsr;
- #else
- #error Port.
- #endif  // ARCH_CPU_X86_FAMILY
-@@ -281,6 +356,7 @@ union FloatContext {
-   static_assert(sizeof(f64) == sizeof(user_fpsimd_struct), "Size mismatch");
- #elif defined(ARCH_CPU_MIPS_FAMILY)
- // No appropriate floating point context native type for available MIPS.
-+#elif defined(ARCH_CPU_RISCV_FAMILY)
- #else
- #error Port.
- #endif  // ARCH_CPU_X86
-Index: chromium-106.0.5249.91/third_party/crashpad/crashpad/util/net/http_transport_libcurl.cc
-===================================================================
---- chromium-106.0.5249.91.orig/third_party/crashpad/crashpad/util/net/http_transport_libcurl.cc
-+++ chromium-106.0.5249.91/third_party/crashpad/crashpad/util/net/http_transport_libcurl.cc
-@@ -237,6 +237,8 @@ std::string UserAgent() {
- #elif defined(ARCH_CPU_BIG_ENDIAN)
-     static constexpr char arch[] = "aarch64_be";
- #endif
-+#elif defined(ARCH_CPU_RISCV64)
-+    static constexpr char arch[] = "riscv64";
- #else
- #error Port
- #endif
-
diff --git a/srcpkgs/qt6-pdf/patches/0005-riscv-crashpad.patch.args b/srcpkgs/qt6-pdf/patches/0005-riscv-crashpad.patch.args
deleted file mode 100644
index d5f38e354e7f00..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0005-riscv-crashpad.patch.args
+++ /dev/null
@@ -1 +0,0 @@
--Np1 --directory=src/3rdparty/chromium/
diff --git a/srcpkgs/qt6-pdf/patches/0006-riscv-dav1d.patch b/srcpkgs/qt6-pdf/patches/0006-riscv-dav1d.patch
deleted file mode 100644
index 12ad07275bd34b..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0006-riscv-dav1d.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-Index: chromium-102.0.5005.61/third_party/dav1d/config/linux/riscv64/config.h
-===================================================================
---- /dev/null
-+++ chromium-102.0.5005.61/third_party/dav1d/config/linux/riscv64/config.h
-@@ -0,0 +1,38 @@
-+/*
-+ * Autogenerated by the Meson build system.
-+ * Do not edit, your changes will be lost.
-+ */
-+
-+#pragma once
-+
-+#define ARCH_AARCH64 0
-+
-+#define ARCH_ARM 0
-+
-+#define ARCH_PPC64LE 0
-+
-+#define ARCH_X86 0
-+
-+#define ARCH_X86_32 0
-+
-+#define ARCH_X86_64 0
-+
-+#define CONFIG_16BPC 1
-+
-+#define CONFIG_8BPC 1
-+
-+// #define CONFIG_LOG 1 -- Logging is controlled by Chromium
-+
-+#define ENDIANNESS_BIG 0
-+
-+#define HAVE_ASM 0
-+
-+#define HAVE_AS_FUNC 0
-+
-+#define HAVE_CLOCK_GETTIME 1
-+
-+#define HAVE_GETAUXVAL 1
-+
-+#define HAVE_POSIX_MEMALIGN 1
-+
-+#define HAVE_UNISTD_H 1
-
diff --git a/srcpkgs/qt6-pdf/patches/0006-riscv-dav1d.patch.args b/srcpkgs/qt6-pdf/patches/0006-riscv-dav1d.patch.args
deleted file mode 100644
index d5f38e354e7f00..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0006-riscv-dav1d.patch.args
+++ /dev/null
@@ -1 +0,0 @@
--Np1 --directory=src/3rdparty/chromium/
diff --git a/srcpkgs/qt6-pdf/patches/0007-riscv-sandbox.patch b/srcpkgs/qt6-pdf/patches/0007-riscv-sandbox.patch
deleted file mode 100644
index c04eb47a013617..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0007-riscv-sandbox.patch
+++ /dev/null
@@ -1,1939 +0,0 @@
-Index: chromium-107.0.5304.87/sandbox/features.gni
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/features.gni
-+++ chromium-107.0.5304.87/sandbox/features.gni
-@@ -9,7 +9,8 @@
- use_seccomp_bpf = (is_linux || is_chromeos || is_android) &&
-                   (current_cpu == "x86" || current_cpu == "x64" ||
-                    current_cpu == "arm" || current_cpu == "arm64" ||
--                   current_cpu == "mipsel" || current_cpu == "mips64el")
-+                   current_cpu == "mipsel" || current_cpu == "mips64el" ||
-+                   current_cpu == "riscv64")
- 
- # SSBD (Speculative Store Bypass Disable) is a mitigation of Spectre Variant 4.
- # As Spectre Variant 4 can be mitigated by site isolation, opt-out SSBD on site
-Index: chromium-107.0.5304.87/sandbox/linux/bpf_dsl/linux_syscall_ranges.h
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/bpf_dsl/linux_syscall_ranges.h
-+++ chromium-107.0.5304.87/sandbox/linux/bpf_dsl/linux_syscall_ranges.h
-@@ -56,6 +56,12 @@
- #define MAX_PUBLIC_SYSCALL __NR_syscalls
- #define MAX_SYSCALL MAX_PUBLIC_SYSCALL
- 
-+#elif defined(__riscv)
-+
-+#define MIN_SYSCALL 0u
-+#define MAX_PUBLIC_SYSCALL 1024u
-+#define MAX_SYSCALL MAX_PUBLIC_SYSCALL
-+
- #else
- #error "Unsupported architecture"
- #endif
-Index: chromium-107.0.5304.87/sandbox/linux/bpf_dsl/seccomp_macros.h
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/bpf_dsl/seccomp_macros.h
-+++ chromium-107.0.5304.87/sandbox/linux/bpf_dsl/seccomp_macros.h
-@@ -343,6 +343,46 @@ struct regs_struct {
- #define SECCOMP_PT_PARM4(_regs) (_regs).regs[3]
- #define SECCOMP_PT_PARM5(_regs) (_regs).regs[4]
- #define SECCOMP_PT_PARM6(_regs) (_regs).regs[5]
-+
-+#elif defined(__riscv)
-+struct regs_struct {
-+  unsigned long regs[32];
-+};
-+
-+#define SECCOMP_ARCH AUDIT_ARCH_RISCV64
-+
-+#define SECCOMP_REG(_ctx, _reg) ((_ctx)->uc_mcontext.__gregs[_reg])
-+
-+#define SECCOMP_RESULT(_ctx) SECCOMP_REG(_ctx, REG_A0)
-+#define SECCOMP_SYSCALL(_ctx) SECCOMP_REG(_ctx, REG_A0+7)
-+#define SECCOMP_IP(_ctx) (_ctx)->uc_mcontext.__gregs[REG_PC]
-+#define SECCOMP_PARM1(_ctx) SECCOMP_REG(_ctx, REG_A0)
-+#define SECCOMP_PARM2(_ctx) SECCOMP_REG(_ctx, REG_A0+1)
-+#define SECCOMP_PARM3(_ctx) SECCOMP_REG(_ctx, REG_A0+2)
-+#define SECCOMP_PARM4(_ctx) SECCOMP_REG(_ctx, REG_A0+3)
-+#define SECCOMP_PARM5(_ctx) SECCOMP_REG(_ctx, REG_A0+4)
-+#define SECCOMP_PARM6(_ctx) SECCOMP_REG(_ctx, REG_A0+5)
-+
-+#define SECCOMP_NR_IDX (offsetof(struct arch_seccomp_data, nr))
-+#define SECCOMP_ARCH_IDX (offsetof(struct arch_seccomp_data, arch))
-+#define SECCOMP_IP_MSB_IDX \
-+  (offsetof(struct arch_seccomp_data, instruction_pointer) + 4)
-+#define SECCOMP_IP_LSB_IDX \
-+  (offsetof(struct arch_seccomp_data, instruction_pointer) + 0)
-+#define SECCOMP_ARG_MSB_IDX(nr) \
-+  (offsetof(struct arch_seccomp_data, args) + 8 * (nr) + 4)
-+#define SECCOMP_ARG_LSB_IDX(nr) \
-+  (offsetof(struct arch_seccomp_data, args) + 8 * (nr) + 0)
-+
-+#define SECCOMP_PT_RESULT(_regs) (_regs).regs[REG_A0]
-+#define SECCOMP_PT_SYSCALL(_regs) (_regs).regs[REG_A0+7]
-+#define SECCOMP_PT_IP(_regs) (_regs).regs[REG_PC]
-+#define SECCOMP_PT_PARM1(_regs) (_regs).regs[REG_A0]
-+#define SECCOMP_PT_PARM2(_regs) (_regs).regs[REG_A0+1]
-+#define SECCOMP_PT_PARM3(_regs) (_regs).regs[REG_A0+2]
-+#define SECCOMP_PT_PARM4(_regs) (_regs).regs[REG_A0+3]
-+#define SECCOMP_PT_PARM5(_regs) (_regs).regs[REG_A0+4]
-+#define SECCOMP_PT_PARM6(_regs) (_regs).regs[REG_A0+5]
- #else
- #error Unsupported target platform
- 
-Index: chromium-107.0.5304.87/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
-+++ chromium-107.0.5304.87/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
-@@ -61,6 +61,9 @@ bool IsBaselinePolicyAllowed(int sysno)
- #if defined(__mips__)
-          SyscallSets::IsMipsPrivate(sysno) ||
- #endif
-+#if defined(__riscv)
-+         SyscallSets::IsRiscvPrivate(sysno) ||
-+#endif
-          SyscallSets::IsAllowedOperationOnFd(sysno);
-   // clang-format on
- }
-@@ -198,7 +201,7 @@ ResultExpr EvaluateSyscallImpl(int fs_de
-     return RestrictFcntlCommands();
- #endif
- 
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-   // fork() is never used as a system call (clone() is used instead), but we
-   // have seen it in fallback code on Android.
-   if (sysno == __NR_fork) {
-@@ -253,7 +256,7 @@ ResultExpr EvaluateSyscallImpl(int fs_de
-   }
- 
- #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-   if (sysno == __NR_mmap)
-     return RestrictMmapFlags();
- #endif
-@@ -274,7 +277,7 @@ ResultExpr EvaluateSyscallImpl(int fs_de
-     return RestrictPrctl();
- 
- #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-   if (sysno == __NR_socketpair) {
-     // Only allow AF_UNIX, PF_UNIX. Crash if anything else is seen.
-     static_assert(AF_UNIX == PF_UNIX,
-Index: chromium-107.0.5304.87/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
-+++ chromium-107.0.5304.87/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
-@@ -37,6 +37,7 @@
- 
- #if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && \
-     !defined(__arm__) && !defined(__aarch64__) &&             \
-+    !defined(__riscv) &&                                      \
-     !defined(PTRACE_GET_THREAD_AREA)
- // Also include asm/ptrace-abi.h since ptrace.h in older libc (for instance
- // the one in Ubuntu 16.04 LTS) is missing PTRACE_GET_THREAD_AREA.
-@@ -442,7 +442,7 @@
- #endif
-   return Switch(request)
-       .Cases({
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-                  PTRACE_GETREGS, PTRACE_GETFPREGS, PTRACE_GET_THREAD_AREA,
-                  PTRACE_GETREGSET,
- #endif
-Index: chromium-107.0.5304.87/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
-+++ chromium-107.0.5304.87/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
-@@ -103,7 +103,7 @@ bool SyscallSets::IsUmask(int sysno) {
- // Both EPERM and ENOENT are valid errno unless otherwise noted in comment.
- bool SyscallSets::IsFileSystem(int sysno) {
-   switch (sysno) {
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_access:  // EPERM not a valid errno.
-     case __NR_chmod:
-     case __NR_chown:
-@@ -136,7 +136,7 @@ bool SyscallSets::IsFileSystem(int sysno
-     case __NR_faccessat2:
-     case __NR_fchmodat:
-     case __NR_fchownat:  // Should be called chownat ?
--#if defined(__x86_64__) || defined(__aarch64__)
-+#if defined(__x86_64__) || defined(__aarch64__) || defined(__riscv)
-     case __NR_newfstatat:  // fstatat(). EPERM not a valid errno.
- #elif defined(__i386__) || defined(__arm__) || \
-     (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
-@@ -226,7 +226,7 @@ bool SyscallSets::IsAllowedFileSystemAcc
-     case __NR_oldfstat:
- #endif
- #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-     case __NR_sync_file_range:  // EPERM not a valid errno.
- #elif defined(__arm__)
-     case __NR_arm_sync_file_range:  // EPERM not a valid errno.
-@@ -245,7 +245,7 @@ bool SyscallSets::IsDeniedFileSystemAcce
- #if defined(__i386__) || defined(__arm__)
-     case __NR_fchown32:
- #endif
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_getdents:    // EPERM not a valid errno.
- #endif
-     case __NR_getdents64:  // EPERM not a valid errno.
-@@ -324,7 +324,7 @@ bool SyscallSets::IsProcessPrivilegeChan
- bool SyscallSets::IsProcessGroupOrSession(int sysno) {
-   switch (sysno) {
-     case __NR_setpgid:
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_getpgrp:
- #endif
-     case __NR_setsid:
-@@ -358,7 +358,7 @@ bool SyscallSets::IsAllowedSignalHandlin
-     case __NR_rt_sigqueueinfo:
-     case __NR_rt_sigsuspend:
-     case __NR_rt_tgsigqueueinfo:
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_signalfd:
- #endif
-     case __NR_signalfd4:
-@@ -382,12 +382,12 @@ bool SyscallSets::IsAllowedOperationOnFd
-   switch (sysno) {
-     case __NR_close:
-     case __NR_dup:
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_dup2:
- #endif
-     case __NR_dup3:
- #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-     case __NR_shutdown:
- #endif
-       return true;
-@@ -426,7 +426,7 @@ bool SyscallSets::IsAllowedProcessStartO
-       return true;
-     case __NR_clone:  // Should be parameter-restricted.
-     case __NR_setns:  // Privileged.
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_fork:
- #endif
- #if defined(__i386__) || defined(__x86_64__)
-@@ -437,7 +437,7 @@ bool SyscallSets::IsAllowedProcessStartO
- #endif
-     case __NR_set_tid_address:
-     case __NR_unshare:
--#if !defined(__mips__) && !defined(__aarch64__)
-+#if !defined(__mips__) && !defined(__aarch64__) && !defined(__riscv)
-     case __NR_vfork:
- #endif
-     default:
-@@ -462,7 +462,7 @@ bool SyscallSets::IsAllowedFutex(int sys
- 
- bool SyscallSets::IsAllowedEpoll(int sysno) {
-   switch (sysno) {
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_epoll_create:
-     case __NR_epoll_wait:
- #endif
-@@ -500,7 +500,7 @@ bool SyscallSets::IsAllowedGetOrModifySo
- bool SyscallSets::IsDeniedGetOrModifySocket(int sysno) {
-   switch (sysno) {
- #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-     case __NR_accept:
-     case __NR_accept4:
-     case __NR_bind:
-@@ -554,7 +554,7 @@ bool SyscallSets::IsAllowedAddressSpaceA
-     case __NR_mincore:
-     case __NR_mlockall:
- #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-     case __NR_mmap:
- #endif
- #if defined(__i386__) || defined(__arm__) || \
-@@ -587,7 +587,7 @@ bool SyscallSets::IsAllowedGeneralIo(int
-     (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
-     case __NR__llseek:
- #endif
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_poll:
- #endif
-     case __NR_ppoll:
-@@ -608,7 +608,7 @@ bool SyscallSets::IsAllowedGeneralIo(int
-     case __NR_recv:
- #endif
- #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-     case __NR_recvfrom:  // Could specify source.
-     case __NR_recvmsg:   // Could specify source.
- #endif
-@@ -623,7 +623,7 @@ bool SyscallSets::IsAllowedGeneralIo(int
-     case __NR_send:
- #endif
- #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-     case __NR_sendmsg:  // Could specify destination.
-     case __NR_sendto:   // Could specify destination.
- #endif
-@@ -672,7 +672,7 @@ bool SyscallSets::IsSeccomp(int sysno) {
- bool SyscallSets::IsAllowedBasicScheduler(int sysno) {
-   switch (sysno) {
-     case __NR_sched_yield:
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_pause:
- #endif
-     case __NR_nanosleep:
-@@ -756,7 +756,7 @@ bool SyscallSets::IsNuma(int sysno) {
-     case __NR_getcpu:
-     case __NR_mbind:
- #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-     case __NR_migrate_pages:
- #endif
-     case __NR_move_pages:
-@@ -791,7 +791,7 @@ bool SyscallSets::IsGlobalProcessEnviron
-   switch (sysno) {
-     case __NR_acct:  // Privileged.
- #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-     case __NR_getrlimit:
- #endif
- #if defined(__i386__) || defined(__arm__)
-@@ -826,7 +826,7 @@ bool SyscallSets::IsDebug(int sysno) {
- 
- bool SyscallSets::IsGlobalSystemStatus(int sysno) {
-   switch (sysno) {
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR__sysctl:
-     case __NR_sysfs:
- #endif
-@@ -844,7 +844,7 @@ bool SyscallSets::IsGlobalSystemStatus(i
- 
- bool SyscallSets::IsEventFd(int sysno) {
-   switch (sysno) {
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_eventfd:
- #endif
-     case __NR_eventfd2:
-@@ -896,7 +896,8 @@ bool SyscallSets::IsKeyManagement(int sy
- }
- 
- #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || \
--    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
-+    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) || \
-+    defined(__riscv)
- bool SyscallSets::IsSystemVSemaphores(int sysno) {
-   switch (sysno) {
-     case __NR_semctl:
-@@ -916,7 +917,8 @@ bool SyscallSets::IsSystemVSemaphores(in
- 
- #if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || \
-     defined(__aarch64__) ||                                         \
--    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
-+    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) || \
-+    defined(__riscv)
- // These give a lot of ambient authority and bypass the setuid sandbox.
- bool SyscallSets::IsSystemVSharedMemory(int sysno) {
-   switch (sysno) {
-@@ -932,7 +934,8 @@ bool SyscallSets::IsSystemVSharedMemory(
- #endif
- 
- #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || \
--    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
-+    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) || \
-+    defined(__riscv)
- bool SyscallSets::IsSystemVMessageQueue(int sysno) {
-   switch (sysno) {
-     case __NR_msgctl:
-@@ -963,7 +966,8 @@ bool SyscallSets::IsSystemVIpc(int sysno
- 
- bool SyscallSets::IsAnySystemV(int sysno) {
- #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || \
--    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
-+    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) || \
-+    defined(__riscv)
-   return IsSystemVMessageQueue(sysno) || IsSystemVSemaphores(sysno) ||
-          IsSystemVSharedMemory(sysno);
- #elif defined(__i386__) || \
-@@ -1000,7 +1004,7 @@ bool SyscallSets::IsAdvancedScheduler(in
- bool SyscallSets::IsInotify(int sysno) {
-   switch (sysno) {
-     case __NR_inotify_add_watch:
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_inotify_init:
- #endif
-     case __NR_inotify_init1:
-@@ -1138,7 +1142,7 @@ bool SyscallSets::IsMisc(int sysno) {
- #if defined(__x86_64__)
-     case __NR_tuxcall:
- #endif
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_vserver:
- #endif
-       return true;
-@@ -1173,6 +1177,17 @@ bool SyscallSets::IsArmPrivate(int sysno
- }
- #endif  // defined(__arm__)
- 
-+#if defined(__riscv)
-+bool SyscallSets::IsRiscvPrivate(int sysno) {
-+  switch (sysno) {
-+    case __NR_riscv_flush_icache:
-+      return true;
-+    default:
-+      return false;
-+  }
-+}
-+#endif  // defined(__riscv)
-+
- #if defined(__mips__)
- bool SyscallSets::IsMipsPrivate(int sysno) {
-   switch (sysno) {
-Index: chromium-107.0.5304.87/sandbox/linux/seccomp-bpf-helpers/syscall_sets.h
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/seccomp-bpf-helpers/syscall_sets.h
-+++ chromium-107.0.5304.87/sandbox/linux/seccomp-bpf-helpers/syscall_sets.h
-@@ -52,7 +52,7 @@ class SANDBOX_EXPORT SyscallSets {
- #endif
- 
- #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
-   static bool IsNetworkSocketInformation(int sysno);
- #endif
- 
-@@ -79,18 +79,21 @@ class SANDBOX_EXPORT SyscallSets {
-   static bool IsAsyncIo(int sysno);
-   static bool IsKeyManagement(int sysno);
- #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || \
--    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
-+    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) || \
-+    defined(__riscv)
-   static bool IsSystemVSemaphores(int sysno);
- #endif
- #if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || \
-     defined(__aarch64__) ||                                         \
--    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
-+    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) || \
-+    defined(__riscv)
-   // These give a lot of ambient authority and bypass the setuid sandbox.
-   static bool IsSystemVSharedMemory(int sysno);
- #endif
- 
- #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || \
--    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
-+    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) || \
-+    defined(__riscv)
-   static bool IsSystemVMessageQueue(int sysno);
- #endif
- 
-@@ -117,6 +120,9 @@ class SANDBOX_EXPORT SyscallSets {
-   static bool IsMipsPrivate(int sysno);
-   static bool IsMipsMisc(int sysno);
- #endif  // defined(__mips__)
-+#if defined(__riscv)
-+  static bool IsRiscvPrivate(int sysno);
-+#endif
-   static bool IsGoogle3Threading(int sysno);
- };
- 
-Index: chromium-107.0.5304.87/sandbox/linux/seccomp-bpf/syscall.cc
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/seccomp-bpf/syscall.cc
-+++ chromium-107.0.5304.87/sandbox/linux/seccomp-bpf/syscall.cc
-@@ -18,7 +18,7 @@ namespace sandbox {
- namespace {
- 
- #if defined(ARCH_CPU_X86_FAMILY) || defined(ARCH_CPU_ARM_FAMILY) || \
--    defined(ARCH_CPU_MIPS_FAMILY)
-+    defined(ARCH_CPU_MIPS_FAMILY) || defined(ARCH_CPU_RISCV_FAMILY)
- // Number that's not currently used by any Linux kernel ABIs.
- const int kInvalidSyscallNumber = 0x351d3;
- #else
-@@ -308,6 +308,28 @@ asm(// We need to be able to tell the ke
-     "2:ret\n"
-     ".cfi_endproc\n"
-     ".size SyscallAsm, .-SyscallAsm\n"
-+#elif defined(__riscv)
-+    ".text\n"
-+    ".align 2\n"
-+    ".type SyscallAsm, %function\n"
-+    "SyscallAsm:\n"
-+    ".cfi_startproc\n"
-+    "bgez a0,1f\n"
-+    "la a0,2f\n"
-+    "j 2f\n"
-+    "1:mv a7, a0\n"
-+    "ld a0, (t0)\n"
-+    "ld a1, 8(t0)\n"
-+    "ld a2, 16(t0)\n"
-+    "ld a3, 24(t0)\n"
-+    "ld a4, 32(t0)\n"
-+    "ld a5, 40(t0)\n"
-+    "ld a6, 48(t0)\n"
-+    // Enter the kernel
-+    "scall\n"
-+    "2:ret\n"
-+    ".cfi_endproc\n"
-+    ".size SyscallAsm, .-SyscallAsm\n"
- #endif
-     );  // asm
- 
-@@ -425,6 +447,18 @@ intptr_t Syscall::Call(int nr,
-     ret = inout;
-   }
- 
-+#elif defined(__riscv)
-+  intptr_t ret;
-+  {
-+    register intptr_t inout __asm__("a0") = nr;
-+    register const intptr_t* data __asm__("t0") = args;
-+    asm volatile("jal SyscallAsm\n"
-+                 : "+r"(inout)
-+                 : "r"(data)
-+                 : "memory", "a1", "a2", "a3", "a4", "a5", "a6");
-+    ret = inout;
-+  }
-+
- #else
- #error "Unimplemented architecture"
- #endif
-Index: chromium-107.0.5304.87/sandbox/linux/services/credentials.cc
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/services/credentials.cc
-+++ chromium-107.0.5304.87/sandbox/linux/services/credentials.cc
-@@ -80,7 +80,7 @@ bool ChrootToSafeEmptyDir() {
-   pid_t pid = -1;
-   alignas(16) char stack_buf[PTHREAD_STACK_MIN];
- #if defined(ARCH_CPU_X86_FAMILY) || defined(ARCH_CPU_ARM_FAMILY) || \
--    defined(ARCH_CPU_MIPS_FAMILY)
-+    defined(ARCH_CPU_MIPS_FAMILY) || defined(ARCH_CPU_RISCV_FAMILY)
-   // The stack grows downward.
-   void* stack = stack_buf + sizeof(stack_buf);
- #else
-Index: chromium-107.0.5304.87/sandbox/linux/services/syscall_wrappers.cc
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/services/syscall_wrappers.cc
-+++ chromium-107.0.5304.87/sandbox/linux/services/syscall_wrappers.cc
-@@ -61,7 +61,7 @@ long sys_clone(unsigned long flags,
- #if defined(ARCH_CPU_X86_64)
-   return syscall(__NR_clone, flags, child_stack, ptid, ctid, tls);
- #elif defined(ARCH_CPU_X86) || defined(ARCH_CPU_ARM_FAMILY) || \
--    defined(ARCH_CPU_MIPS_FAMILY)
-+    defined(ARCH_CPU_MIPS_FAMILY) || defined(ARCH_CPU_RISCV_FAMILY)
-   // CONFIG_CLONE_BACKWARDS defined.
-   return syscall(__NR_clone, flags, child_stack, ptid, tls, ctid);
- #endif
-Index: chromium-107.0.5304.87/sandbox/linux/syscall_broker/broker_process.cc
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/syscall_broker/broker_process.cc
-+++ chromium-107.0.5304.87/sandbox/linux/syscall_broker/broker_process.cc
-@@ -117,44 +117,46 @@ bool BrokerProcess::IsSyscallBrokerable(
-   // and are default disabled in Android. So, we should refuse to broker them
-   // to be consistent with the platform's restrictions.
-   switch (sysno) {
--#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID)
-+#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID) && !defined(__riscv)
-     case __NR_access:
- #endif
-     case __NR_faccessat:
-     case __NR_faccessat2:
-       return !fast_check || policy_->allowed_command_set.test(COMMAND_ACCESS);
- 
--#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID)
-+#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID) && !defined(__riscv)
-     case __NR_mkdir:
- #endif
-     case __NR_mkdirat:
-       return !fast_check || policy_->allowed_command_set.test(COMMAND_MKDIR);
- 
--#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID)
-+#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID) && !defined(__riscv)
-     case __NR_open:
- #endif
-     case __NR_openat:
-       return !fast_check || policy_->allowed_command_set.test(COMMAND_OPEN);
- 
--#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID)
-+#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID) && !defined(__riscv)
-     case __NR_readlink:
- #endif
-     case __NR_readlinkat:
-       return !fast_check || policy_->allowed_command_set.test(COMMAND_READLINK);
- 
--#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID)
-+#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID) && !defined(__riscv)
-     case __NR_rename:
- #endif
-+#ifdef __NR_renameat
-     case __NR_renameat:
-+#endif
-     case __NR_renameat2:
-       return !fast_check || policy_->allowed_command_set.test(COMMAND_RENAME);
- 
--#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID)
-+#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID) && !defined(__riscv)
-     case __NR_rmdir:
-       return !fast_check || policy_->allowed_command_set.test(COMMAND_RMDIR);
- #endif
- 
--#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID)
-+#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID) && !defined(__riscv)
-     case __NR_stat:
-     case __NR_lstat:
- #endif
-@@ -164,7 +166,7 @@ bool BrokerProcess::IsSyscallBrokerable(
- #if defined(__NR_fstatat64)
-     case __NR_fstatat64:
- #endif
--#if defined(__x86_64__) || defined(__aarch64__)
-+#if defined(__x86_64__) || defined(__aarch64__) || defined(__riscv)
-     case __NR_newfstatat:
- #endif
-       return !fast_check || policy_->allowed_command_set.test(COMMAND_STAT);
-@@ -179,7 +181,7 @@ bool BrokerProcess::IsSyscallBrokerable(
-       return !fast_check || policy_->allowed_command_set.test(COMMAND_STAT);
- #endif
- 
--#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID)
-+#if !defined(__aarch64__) && !BUILDFLAG(IS_ANDROID) && !defined(__riscv)
-     case __NR_unlink:
-       return !fast_check || policy_->allowed_command_set.test(COMMAND_UNLINK);
- #endif
-Index: chromium-107.0.5304.87/sandbox/linux/system_headers/linux_seccomp.h
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/system_headers/linux_seccomp.h
-+++ chromium-107.0.5304.87/sandbox/linux/system_headers/linux_seccomp.h
-@@ -38,6 +38,9 @@
- #ifndef EM_AARCH64
- #define EM_AARCH64 183
- #endif
-+#ifndef EM_RISCV
-+#define EM_RISCV 243
-+#endif
- 
- #ifndef __AUDIT_ARCH_64BIT
- #define __AUDIT_ARCH_64BIT 0x80000000
-@@ -70,6 +73,9 @@
- #ifndef AUDIT_ARCH_AARCH64
- #define AUDIT_ARCH_AARCH64 (EM_AARCH64 | __AUDIT_ARCH_64BIT | __AUDIT_ARCH_LE)
- #endif
-+#ifndef AUDIT_ARCH_RISCV64
-+#define AUDIT_ARCH_RISCV64 (EM_RISCV|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)
-+#endif
- 
- // For prctl.h
- #ifndef PR_SET_SECCOMP
-Index: chromium-107.0.5304.87/sandbox/linux/system_headers/linux_signal.h
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/system_headers/linux_signal.h
-+++ chromium-107.0.5304.87/sandbox/linux/system_headers/linux_signal.h
-@@ -13,7 +13,7 @@
- // (not undefined, but defined different values and in different memory
- // layouts). So, fill the gap here.
- #if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || \
--    defined(__aarch64__)
-+    defined(__aarch64__) || defined(__riscv)
- 
- #define LINUX_SIGHUP 1
- #define LINUX_SIGINT 2
-Index: chromium-107.0.5304.87/sandbox/linux/system_headers/linux_stat.h
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/system_headers/linux_stat.h
-+++ chromium-107.0.5304.87/sandbox/linux/system_headers/linux_stat.h
-@@ -150,7 +150,7 @@ struct kernel_stat {
-   int st_blocks;
-   int st_pad4[14];
- };
--#elif defined(__aarch64__)
-+#elif defined(__aarch64__) || defined(__riscv)
- struct kernel_stat {
-   unsigned long st_dev;
-   unsigned long st_ino;
-Index: chromium-107.0.5304.87/sandbox/linux/system_headers/linux_syscalls.h
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/linux/system_headers/linux_syscalls.h
-+++ chromium-107.0.5304.87/sandbox/linux/system_headers/linux_syscalls.h
-@@ -35,5 +35,9 @@
- #include "sandbox/linux/system_headers/arm64_linux_syscalls.h"
- #endif
- 
-+#if defined(__riscv) && __riscv_xlen == 64
-+#include "sandbox/linux/system_headers/riscv64_linux_syscalls.h"
-+#endif
-+
- #endif  // SANDBOX_LINUX_SYSTEM_HEADERS_LINUX_SYSCALLS_H_
- 
-Index: chromium-107.0.5304.87/sandbox/linux/system_headers/riscv64_linux_syscalls.h
-===================================================================
---- /dev/null
-+++ chromium-107.0.5304.87/sandbox/linux/system_headers/riscv64_linux_syscalls.h
-@@ -0,0 +1,1222 @@
-+// Copyright 2014 The Chromium Authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+#ifndef SANDBOX_LINUX_SYSTEM_HEADERS_RISCV64_LINUX_SYSCALLS_H_
-+#define SANDBOX_LINUX_SYSTEM_HEADERS_RISCV64_LINUX_SYSCALLS_H_
-+
-+#include <asm-generic/unistd.h>
-+
-+#if !defined(__NR_io_setup)
-+#define __NR_io_setup 0
-+#endif
-+
-+#if !defined(__NR_io_destroy)
-+#define __NR_io_destroy 1
-+#endif
-+
-+#if !defined(__NR_io_submit)
-+#define __NR_io_submit 2
-+#endif
-+
-+#if !defined(__NR_io_cancel)
-+#define __NR_io_cancel 3
-+#endif
-+
-+#if !defined(__NR_io_getevents)
-+#define __NR_io_getevents 4
-+#endif
-+
-+#if !defined(__NR_setxattr)
-+#define __NR_setxattr 5
-+#endif
-+
-+#if !defined(__NR_lsetxattr)
-+#define __NR_lsetxattr 6
-+#endif
-+
-+#if !defined(__NR_fsetxattr)
-+#define __NR_fsetxattr 7
-+#endif
-+
-+#if !defined(__NR_getxattr)
-+#define __NR_getxattr 8
-+#endif
-+
-+#if !defined(__NR_lgetxattr)
-+#define __NR_lgetxattr 9
-+#endif
-+
-+#if !defined(__NR_fgetxattr)
-+#define __NR_fgetxattr 10
-+#endif
-+
-+#if !defined(__NR_listxattr)
-+#define __NR_listxattr 11
-+#endif
-+
-+#if !defined(__NR_llistxattr)
-+#define __NR_llistxattr 12
-+#endif
-+
-+#if !defined(__NR_flistxattr)
-+#define __NR_flistxattr 13
-+#endif
-+
-+#if !defined(__NR_removexattr)
-+#define __NR_removexattr 14
-+#endif
-+
-+#if !defined(__NR_lremovexattr)
-+#define __NR_lremovexattr 15
-+#endif
-+
-+#if !defined(__NR_fremovexattr)
-+#define __NR_fremovexattr 16
-+#endif
-+
-+#if !defined(__NR_getcwd)
-+#define __NR_getcwd 17
-+#endif
-+
-+#if !defined(__NR_lookup_dcookie)
-+#define __NR_lookup_dcookie 18
-+#endif
-+
-+#if !defined(__NR_eventfd2)
-+#define __NR_eventfd2 19
-+#endif
-+
-+#if !defined(__NR_epoll_create1)
-+#define __NR_epoll_create1 20
-+#endif
-+
-+#if !defined(__NR_epoll_ctl)
-+#define __NR_epoll_ctl 21
-+#endif
-+
-+#if !defined(__NR_epoll_pwait)
-+#define __NR_epoll_pwait 22
-+#endif
-+
-+#if !defined(__NR_dup)
-+#define __NR_dup 23
-+#endif
-+
-+#if !defined(__NR_dup3)
-+#define __NR_dup3 24
-+#endif
-+
-+#if !defined(__NR_fcntl)
-+#define __NR_fcntl 25
-+#endif
-+
-+#if !defined(__NR_inotify_init1)
-+#define __NR_inotify_init1 26
-+#endif
-+
-+#if !defined(__NR_inotify_add_watch)
-+#define __NR_inotify_add_watch 27
-+#endif
-+
-+#if !defined(__NR_inotify_rm_watch)
-+#define __NR_inotify_rm_watch 28
-+#endif
-+
-+#if !defined(__NR_ioctl)
-+#define __NR_ioctl 29
-+#endif
-+
-+#if !defined(__NR_ioprio_set)
-+#define __NR_ioprio_set 30
-+#endif
-+
-+#if !defined(__NR_ioprio_get)
-+#define __NR_ioprio_get 31
-+#endif
-+
-+#if !defined(__NR_flock)
-+#define __NR_flock 32
-+#endif
-+
-+#if !defined(__NR_mknodat)
-+#define __NR_mknodat 33
-+#endif
-+
-+#if !defined(__NR_mkdirat)
-+#define __NR_mkdirat 34
-+#endif
-+
-+#if !defined(__NR_unlinkat)
-+#define __NR_unlinkat 35
-+#endif
-+
-+#if !defined(__NR_symlinkat)
-+#define __NR_symlinkat 36
-+#endif
-+
-+#if !defined(__NR_linkat)
-+#define __NR_linkat 37
-+#endif
-+
-+#if !defined(__NR_renameat)
-+#define __NR_renameat 38
-+#endif
-+
-+#if !defined(__NR_umount2)
-+#define __NR_umount2 39
-+#endif
-+
-+#if !defined(__NR_mount)
-+#define __NR_mount 40
-+#endif
-+
-+#if !defined(__NR_pivot_root)
-+#define __NR_pivot_root 41
-+#endif
-+
-+#if !defined(__NR_nfsservctl)
-+#define __NR_nfsservctl 42
-+#endif
-+
-+#if !defined(__NR_statfs)
-+#define __NR_statfs 43
-+#endif
-+
-+#if !defined(__NR_fstatfs)
-+#define __NR_fstatfs 44
-+#endif
-+
-+#if !defined(__NR_truncate)
-+#define __NR_truncate 45
-+#endif
-+
-+#if !defined(__NR_ftruncate)
-+#define __NR_ftruncate 46
-+#endif
-+
-+#if !defined(__NR_fallocate)
-+#define __NR_fallocate 47
-+#endif
-+
-+#if !defined(__NR_faccessat)
-+#define __NR_faccessat 48
-+#endif
-+
-+#if !defined(__NR_chdir)
-+#define __NR_chdir 49
-+#endif
-+
-+#if !defined(__NR_fchdir)
-+#define __NR_fchdir 50
-+#endif
-+
-+#if !defined(__NR_chroot)
-+#define __NR_chroot 51
-+#endif
-+
-+#if !defined(__NR_fchmod)
-+#define __NR_fchmod 52
-+#endif
-+
-+#if !defined(__NR_fchmodat)
-+#define __NR_fchmodat 53
-+#endif
-+
-+#if !defined(__NR_fchownat)
-+#define __NR_fchownat 54
-+#endif
-+
-+#if !defined(__NR_fchown)
-+#define __NR_fchown 55
-+#endif
-+
-+#if !defined(__NR_openat)
-+#define __NR_openat 56
-+#endif
-+
-+#if !defined(__NR_close)
-+#define __NR_close 57
-+#endif
-+
-+#if !defined(__NR_vhangup)
-+#define __NR_vhangup 58
-+#endif
-+
-+#if !defined(__NR_pipe2)
-+#define __NR_pipe2 59
-+#endif
-+
-+#if !defined(__NR_quotactl)
-+#define __NR_quotactl 60
-+#endif
-+
-+#if !defined(__NR_getdents64)
-+#define __NR_getdents64 61
-+#endif
-+
-+#if !defined(__NR_lseek)
-+#define __NR_lseek 62
-+#endif
-+
-+#if !defined(__NR_read)
-+#define __NR_read 63
-+#endif
-+
-+#if !defined(__NR_write)
-+#define __NR_write 64
-+#endif
-+
-+#if !defined(__NR_readv)
-+#define __NR_readv 65
-+#endif
-+
-+#if !defined(__NR_writev)
-+#define __NR_writev 66
-+#endif
-+
-+#if !defined(__NR_pread64)
-+#define __NR_pread64 67
-+#endif
-+
-+#if !defined(__NR_pwrite64)
-+#define __NR_pwrite64 68
-+#endif
-+
-+#if !defined(__NR_preadv)
-+#define __NR_preadv 69
-+#endif
-+
-+#if !defined(__NR_pwritev)
-+#define __NR_pwritev 70
-+#endif
-+
-+#if !defined(__NR_sendfile)
-+#define __NR_sendfile 71
-+#endif
-+
-+#if !defined(__NR_pselect6)
-+#define __NR_pselect6 72
-+#endif
-+
-+#if !defined(__NR_ppoll)
-+#define __NR_ppoll 73
-+#endif
-+
-+#if !defined(__NR_signalfd4)
-+#define __NR_signalfd4 74
-+#endif
-+
-+#if !defined(__NR_vmsplice)
-+#define __NR_vmsplice 75
-+#endif
-+
-+#if !defined(__NR_splice)
-+#define __NR_splice 76
-+#endif
-+
-+#if !defined(__NR_tee)
-+#define __NR_tee 77
-+#endif
-+
-+#if !defined(__NR_readlinkat)
-+#define __NR_readlinkat 78
-+#endif
-+
-+#if !defined(__NR_newfstatat)
-+#define __NR_newfstatat 79
-+#endif
-+
-+#if !defined(__NR_fstat)
-+#define __NR_fstat 80
-+#endif
-+
-+#if !defined(__NR_sync)
-+#define __NR_sync 81
-+#endif
-+
-+#if !defined(__NR_fsync)
-+#define __NR_fsync 82
-+#endif
-+
-+#if !defined(__NR_fdatasync)
-+#define __NR_fdatasync 83
-+#endif
-+
-+#if !defined(__NR_sync_file_range)
-+#define __NR_sync_file_range 84
-+#endif
-+
-+#if !defined(__NR_timerfd_create)
-+#define __NR_timerfd_create 85
-+#endif
-+
-+#if !defined(__NR_timerfd_settime)
-+#define __NR_timerfd_settime 86
-+#endif
-+
-+#if !defined(__NR_timerfd_gettime)
-+#define __NR_timerfd_gettime 87
-+#endif
-+
-+#if !defined(__NR_utimensat)
-+#define __NR_utimensat 88
-+#endif
-+
-+#if !defined(__NR_acct)
-+#define __NR_acct 89
-+#endif
-+
-+#if !defined(__NR_capget)
-+#define __NR_capget 90
-+#endif
-+
-+#if !defined(__NR_capset)
-+#define __NR_capset 91
-+#endif
-+
-+#if !defined(__NR_personality)
-+#define __NR_personality 92
-+#endif
-+
-+#if !defined(__NR_exit)
-+#define __NR_exit 93
-+#endif
-+
-+#if !defined(__NR_exit_group)
-+#define __NR_exit_group 94
-+#endif
-+
-+#if !defined(__NR_waitid)
-+#define __NR_waitid 95
-+#endif
-+
-+#if !defined(__NR_set_tid_address)
-+#define __NR_set_tid_address 96
-+#endif
-+
-+#if !defined(__NR_unshare)
-+#define __NR_unshare 97
-+#endif
-+
-+#if !defined(__NR_futex)
-+#define __NR_futex 98
-+#endif
-+
-+#if !defined(__NR_set_robust_list)
-+#define __NR_set_robust_list 99
-+#endif
-+
-+#if !defined(__NR_get_robust_list)
-+#define __NR_get_robust_list 100
-+#endif
-+
-+#if !defined(__NR_nanosleep)
-+#define __NR_nanosleep 101
-+#endif
-+
-+#if !defined(__NR_getitimer)
-+#define __NR_getitimer 102
-+#endif
-+
-+#if !defined(__NR_setitimer)
-+#define __NR_setitimer 103
-+#endif
-+
-+#if !defined(__NR_kexec_load)
-+#define __NR_kexec_load 104
-+#endif
-+
-+#if !defined(__NR_init_module)
-+#define __NR_init_module 105
-+#endif
-+
-+#if !defined(__NR_delete_module)
-+#define __NR_delete_module 106
-+#endif
-+
-+#if !defined(__NR_timer_create)
-+#define __NR_timer_create 107
-+#endif
-+
-+#if !defined(__NR_timer_gettime)
-+#define __NR_timer_gettime 108
-+#endif
-+
-+#if !defined(__NR_timer_getoverrun)
-+#define __NR_timer_getoverrun 109
-+#endif
-+
-+#if !defined(__NR_timer_settime)
-+#define __NR_timer_settime 110
-+#endif
-+
-+#if !defined(__NR_timer_delete)
-+#define __NR_timer_delete 111
-+#endif
-+
-+#if !defined(__NR_clock_settime)
-+#define __NR_clock_settime 112
-+#endif
-+
-+#if !defined(__NR_clock_gettime)
-+#define __NR_clock_gettime 113
-+#endif
-+
-+#if !defined(__NR_clock_getres)
-+#define __NR_clock_getres 114
-+#endif
-+
-+#if !defined(__NR_clock_nanosleep)
-+#define __NR_clock_nanosleep 115
-+#endif
-+
-+#if !defined(__NR_syslog)
-+#define __NR_syslog 116
-+#endif
-+
-+#if !defined(__NR_ptrace)
-+#define __NR_ptrace 117
-+#endif
-+
-+#if !defined(__NR_sched_setparam)
-+#define __NR_sched_setparam 118
-+#endif
-+
-+#if !defined(__NR_sched_setscheduler)
-+#define __NR_sched_setscheduler 119
-+#endif
-+
-+#if !defined(__NR_sched_getscheduler)
-+#define __NR_sched_getscheduler 120
-+#endif
-+
-+#if !defined(__NR_sched_getparam)
-+#define __NR_sched_getparam 121
-+#endif
-+
-+#if !defined(__NR_sched_setaffinity)
-+#define __NR_sched_setaffinity 122
-+#endif
-+
-+#if !defined(__NR_sched_getaffinity)
-+#define __NR_sched_getaffinity 123
-+#endif
-+
-+#if !defined(__NR_sched_yield)
-+#define __NR_sched_yield 124
-+#endif
-+
-+#if !defined(__NR_sched_get_priority_max)
-+#define __NR_sched_get_priority_max 125
-+#endif
-+
-+#if !defined(__NR_sched_get_priority_min)
-+#define __NR_sched_get_priority_min 126
-+#endif
-+
-+#if !defined(__NR_sched_rr_get_interval)
-+#define __NR_sched_rr_get_interval 127
-+#endif
-+
-+#if !defined(__NR_restart_syscall)
-+#define __NR_restart_syscall 128
-+#endif
-+
-+#if !defined(__NR_kill)
-+#define __NR_kill 129
-+#endif
-+
-+#if !defined(__NR_tkill)
-+#define __NR_tkill 130
-+#endif
-+
-+#if !defined(__NR_tgkill)
-+#define __NR_tgkill 131
-+#endif
-+
-+#if !defined(__NR_sigaltstack)
-+#define __NR_sigaltstack 132
-+#endif
-+
-+#if !defined(__NR_rt_sigsuspend)
-+#define __NR_rt_sigsuspend 133
-+#endif
-+
-+#if !defined(__NR_rt_sigaction)
-+#define __NR_rt_sigaction 134
-+#endif
-+
-+#if !defined(__NR_rt_sigprocmask)
-+#define __NR_rt_sigprocmask 135
-+#endif
-+
-+#if !defined(__NR_rt_sigpending)
-+#define __NR_rt_sigpending 136
-+#endif
-+
-+#if !defined(__NR_rt_sigtimedwait)
-+#define __NR_rt_sigtimedwait 137
-+#endif
-+
-+#if !defined(__NR_rt_sigqueueinfo)
-+#define __NR_rt_sigqueueinfo 138
-+#endif
-+
-+#if !defined(__NR_rt_sigreturn)
-+#define __NR_rt_sigreturn 139
-+#endif
-+
-+#if !defined(__NR_setpriority)
-+#define __NR_setpriority 140
-+#endif
-+
-+#if !defined(__NR_getpriority)
-+#define __NR_getpriority 141
-+#endif
-+
-+#if !defined(__NR_reboot)
-+#define __NR_reboot 142
-+#endif
-+
-+#if !defined(__NR_setregid)
-+#define __NR_setregid 143
-+#endif
-+
-+#if !defined(__NR_setgid)
-+#define __NR_setgid 144
-+#endif
-+
-+#if !defined(__NR_setreuid)
-+#define __NR_setreuid 145
-+#endif
-+
-+#if !defined(__NR_setuid)
-+#define __NR_setuid 146
-+#endif
-+
-+#if !defined(__NR_setresuid)
-+#define __NR_setresuid 147
-+#endif
-+
-+#if !defined(__NR_getresuid)
-+#define __NR_getresuid 148
-+#endif
-+
-+#if !defined(__NR_setresgid)
-+#define __NR_setresgid 149
-+#endif
-+
-+#if !defined(__NR_getresgid)
-+#define __NR_getresgid 150
-+#endif
-+
-+#if !defined(__NR_setfsuid)
-+#define __NR_setfsuid 151
-+#endif
-+
-+#if !defined(__NR_setfsgid)
-+#define __NR_setfsgid 152
-+#endif
-+
-+#if !defined(__NR_times)
-+#define __NR_times 153
-+#endif
-+
-+#if !defined(__NR_setpgid)
-+#define __NR_setpgid 154
-+#endif
-+
-+#if !defined(__NR_getpgid)
-+#define __NR_getpgid 155
-+#endif
-+
-+#if !defined(__NR_getsid)
-+#define __NR_getsid 156
-+#endif
-+
-+#if !defined(__NR_setsid)
-+#define __NR_setsid 157
-+#endif
-+
-+#if !defined(__NR_getgroups)
-+#define __NR_getgroups 158
-+#endif
-+
-+#if !defined(__NR_setgroups)
-+#define __NR_setgroups 159
-+#endif
-+
-+#if !defined(__NR_uname)
-+#define __NR_uname 160
-+#endif
-+
-+#if !defined(__NR_sethostname)
-+#define __NR_sethostname 161
-+#endif
-+
-+#if !defined(__NR_setdomainname)
-+#define __NR_setdomainname 162
-+#endif
-+
-+#if !defined(__NR_getrlimit)
-+#define __NR_getrlimit 163
-+#endif
-+
-+#if !defined(__NR_setrlimit)
-+#define __NR_setrlimit 164
-+#endif
-+
-+#if !defined(__NR_getrusage)
-+#define __NR_getrusage 165
-+#endif
-+
-+#if !defined(__NR_umask)
-+#define __NR_umask 166
-+#endif
-+
-+#if !defined(__NR_prctl)
-+#define __NR_prctl 167
-+#endif
-+
-+#if !defined(__NR_getcpu)
-+#define __NR_getcpu 168
-+#endif
-+
-+#if !defined(__NR_gettimeofday)
-+#define __NR_gettimeofday 169
-+#endif
-+
-+#if !defined(__NR_settimeofday)
-+#define __NR_settimeofday 170
-+#endif
-+
-+#if !defined(__NR_adjtimex)
-+#define __NR_adjtimex 171
-+#endif
-+
-+#if !defined(__NR_getpid)
-+#define __NR_getpid 172
-+#endif
-+
-+#if !defined(__NR_getppid)
-+#define __NR_getppid 173
-+#endif
-+
-+#if !defined(__NR_getuid)
-+#define __NR_getuid 174
-+#endif
-+
-+#if !defined(__NR_geteuid)
-+#define __NR_geteuid 175
-+#endif
-+
-+#if !defined(__NR_getgid)
-+#define __NR_getgid 176
-+#endif
-+
-+#if !defined(__NR_getegid)
-+#define __NR_getegid 177
-+#endif
-+
-+#if !defined(__NR_gettid)
-+#define __NR_gettid 178
-+#endif
-+
-+#if !defined(__NR_sysinfo)
-+#define __NR_sysinfo 179
-+#endif
-+
-+#if !defined(__NR_mq_open)
-+#define __NR_mq_open 180
-+#endif
-+
-+#if !defined(__NR_mq_unlink)
-+#define __NR_mq_unlink 181
-+#endif
-+
-+#if !defined(__NR_mq_timedsend)
-+#define __NR_mq_timedsend 182
-+#endif
-+
-+#if !defined(__NR_mq_timedreceive)
-+#define __NR_mq_timedreceive 183
-+#endif
-+
-+#if !defined(__NR_mq_notify)
-+#define __NR_mq_notify 184
-+#endif
-+
-+#if !defined(__NR_mq_getsetattr)
-+#define __NR_mq_getsetattr 185
-+#endif
-+
-+#if !defined(__NR_msgget)
-+#define __NR_msgget 186
-+#endif
-+
-+#if !defined(__NR_msgctl)
-+#define __NR_msgctl 187
-+#endif
-+
-+#if !defined(__NR_msgrcv)
-+#define __NR_msgrcv 188
-+#endif
-+
-+#if !defined(__NR_msgsnd)
-+#define __NR_msgsnd 189
-+#endif
-+
-+#if !defined(__NR_semget)
-+#define __NR_semget 190
-+#endif
-+
-+#if !defined(__NR_semctl)
-+#define __NR_semctl 191
-+#endif
-+
-+#if !defined(__NR_semtimedop)
-+#define __NR_semtimedop 192
-+#endif
-+
-+#if !defined(__NR_semop)
-+#define __NR_semop 193
-+#endif
-+
-+#if !defined(__NR_shmget)
-+#define __NR_shmget 194
-+#endif
-+
-+#if !defined(__NR_shmctl)
-+#define __NR_shmctl 195
-+#endif
-+
-+#if !defined(__NR_shmat)
-+#define __NR_shmat 196
-+#endif
-+
-+#if !defined(__NR_shmdt)
-+#define __NR_shmdt 197
-+#endif
-+
-+#if !defined(__NR_socket)
-+#define __NR_socket 198
-+#endif
-+
-+#if !defined(__NR_socketpair)
-+#define __NR_socketpair 199
-+#endif
-+
-+#if !defined(__NR_bind)
-+#define __NR_bind 200
-+#endif
-+
-+#if !defined(__NR_listen)
-+#define __NR_listen 201
-+#endif
-+
-+#if !defined(__NR_accept)
-+#define __NR_accept 202
-+#endif
-+
-+#if !defined(__NR_connect)
-+#define __NR_connect 203
-+#endif
-+
-+#if !defined(__NR_getsockname)
-+#define __NR_getsockname 204
-+#endif
-+
-+#if !defined(__NR_getpeername)
-+#define __NR_getpeername 205
-+#endif
-+
-+#if !defined(__NR_sendto)
-+#define __NR_sendto 206
-+#endif
-+
-+#if !defined(__NR_recvfrom)
-+#define __NR_recvfrom 207
-+#endif
-+
-+#if !defined(__NR_setsockopt)
-+#define __NR_setsockopt 208
-+#endif
-+
-+#if !defined(__NR_getsockopt)
-+#define __NR_getsockopt 209
-+#endif
-+
-+#if !defined(__NR_shutdown)
-+#define __NR_shutdown 210
-+#endif
-+
-+#if !defined(__NR_sendmsg)
-+#define __NR_sendmsg 211
-+#endif
-+
-+#if !defined(__NR_recvmsg)
-+#define __NR_recvmsg 212
-+#endif
-+
-+#if !defined(__NR_readahead)
-+#define __NR_readahead 213
-+#endif
-+
-+#if !defined(__NR_brk)
-+#define __NR_brk 214
-+#endif
-+
-+#if !defined(__NR_munmap)
-+#define __NR_munmap 215
-+#endif
-+
-+#if !defined(__NR_mremap)
-+#define __NR_mremap 216
-+#endif
-+
-+#if !defined(__NR_add_key)
-+#define __NR_add_key 217
-+#endif
-+
-+#if !defined(__NR_request_key)
-+#define __NR_request_key 218
-+#endif
-+
-+#if !defined(__NR_keyctl)
-+#define __NR_keyctl 219
-+#endif
-+
-+#if !defined(__NR_clone)
-+#define __NR_clone 220
-+#endif
-+
-+#if !defined(__NR_execve)
-+#define __NR_execve 221
-+#endif
-+
-+#if !defined(__NR_mmap)
-+#define __NR_mmap 222
-+#endif
-+
-+#if !defined(__NR_fadvise64)
-+#define __NR_fadvise64 223
-+#endif
-+
-+#if !defined(__NR_swapon)
-+#define __NR_swapon 224
-+#endif
-+
-+#if !defined(__NR_swapoff)
-+#define __NR_swapoff 225
-+#endif
-+
-+#if !defined(__NR_mprotect)
-+#define __NR_mprotect 226
-+#endif
-+
-+#if !defined(__NR_msync)
-+#define __NR_msync 227
-+#endif
-+
-+#if !defined(__NR_mlock)
-+#define __NR_mlock 228
-+#endif
-+
-+#if !defined(__NR_munlock)
-+#define __NR_munlock 229
-+#endif
-+
-+#if !defined(__NR_mlockall)
-+#define __NR_mlockall 230
-+#endif
-+
-+#if !defined(__NR_munlockall)
-+#define __NR_munlockall 231
-+#endif
-+
-+#if !defined(__NR_mincore)
-+#define __NR_mincore 232
-+#endif
-+
-+#if !defined(__NR_madvise)
-+#define __NR_madvise 233
-+#endif
-+
-+#if !defined(__NR_remap_file_pages)
-+#define __NR_remap_file_pages 234
-+#endif
-+
-+#if !defined(__NR_mbind)
-+#define __NR_mbind 235
-+#endif
-+
-+#if !defined(__NR_get_mempolicy)
-+#define __NR_get_mempolicy 236
-+#endif
-+
-+#if !defined(__NR_set_mempolicy)
-+#define __NR_set_mempolicy 237
-+#endif
-+
-+#if !defined(__NR_migrate_pages)
-+#define __NR_migrate_pages 238
-+#endif
-+
-+#if !defined(__NR_move_pages)
-+#define __NR_move_pages 239
-+#endif
-+
-+#if !defined(__NR_rt_tgsigqueueinfo)
-+#define __NR_rt_tgsigqueueinfo 240
-+#endif
-+
-+#if !defined(__NR_perf_event_open)
-+#define __NR_perf_event_open 241
-+#endif
-+
-+#if !defined(__NR_accept4)
-+#define __NR_accept4 242
-+#endif
-+
-+#if !defined(__NR_recvmmsg)
-+#define __NR_recvmmsg 243
-+#endif
-+
-+#if !defined(__NR_riscv_flush_icache)
-+#define __NR_riscv_flush_icache 259
-+#endif
-+
-+#if !defined(__NR_wait4)
-+#define __NR_wait4 260
-+#endif
-+
-+#if !defined(__NR_prlimit64)
-+#define __NR_prlimit64 261
-+#endif
-+
-+#if !defined(__NR_fanotify_init)
-+#define __NR_fanotify_init 262
-+#endif
-+
-+#if !defined(__NR_fanotify_mark)
-+#define __NR_fanotify_mark 263
-+#endif
-+
-+#if !defined(__NR_name_to_handle_at)
-+#define __NR_name_to_handle_at 264
-+#endif
-+
-+#if !defined(__NR_open_by_handle_at)
-+#define __NR_open_by_handle_at 265
-+#endif
-+
-+#if !defined(__NR_clock_adjtime)
-+#define __NR_clock_adjtime 266
-+#endif
-+
-+#if !defined(__NR_syncfs)
-+#define __NR_syncfs 267
-+#endif
-+
-+#if !defined(__NR_setns)
-+#define __NR_setns 268
-+#endif
-+
-+#if !defined(__NR_sendmmsg)
-+#define __NR_sendmmsg 269
-+#endif
-+
-+#if !defined(__NR_process_vm_readv)
-+#define __NR_process_vm_readv 270
-+#endif
-+
-+#if !defined(__NR_process_vm_writev)
-+#define __NR_process_vm_writev 271
-+#endif
-+
-+#if !defined(__NR_kcmp)
-+#define __NR_kcmp 272
-+#endif
-+
-+#if !defined(__NR_finit_module)
-+#define __NR_finit_module 273
-+#endif
-+
-+#if !defined(__NR_sched_setattr)
-+#define __NR_sched_setattr 274
-+#endif
-+
-+#if !defined(__NR_sched_getattr)
-+#define __NR_sched_getattr 275
-+#endif
-+
-+#if !defined(__NR_renameat2)
-+#define __NR_renameat2 276
-+#endif
-+
-+#if !defined(__NR_seccomp)
-+#define __NR_seccomp 277
-+#endif
-+
-+#if !defined(__NR_getrandom)
-+#define __NR_getrandom 278
-+#endif
-+
-+#if !defined(__NR_memfd_create)
-+#define __NR_memfd_create 279
-+#endif
-+
-+#if !defined(__NR_bpf)
-+#define __NR_bpf 280
-+#endif
-+
-+#if !defined(__NR_execveat)
-+#define __NR_execveat 281
-+#endif
-+
-+#if !defined(__NR_userfaultfd)
-+#define __NR_userfaultfd 282
-+#endif
-+
-+#if !defined(__NR_membarrier)
-+#define __NR_membarrier 283
-+#endif
-+
-+#if !defined(__NR_mlock2)
-+#define __NR_mlock2 284
-+#endif
-+
-+#if !defined(__NR_copy_file_range)
-+#define __NR_copy_file_range 285
-+#endif
-+
-+#if !defined(__NR_preadv2)
-+#define __NR_preadv2 286
-+#endif
-+
-+#if !defined(__NR_pwritev2)
-+#define __NR_pwritev2 287
-+#endif
-+
-+#if !defined(__NR_pkey_mprotect)
-+#define __NR_pkey_mprotect 288
-+#endif
-+
-+#if !defined(__NR_pkey_alloc)
-+#define __NR_pkey_alloc 289
-+#endif
-+
-+#if !defined(__NR_pkey_free)
-+#define __NR_pkey_free 290
-+#endif
-+
-+#if !defined(__NR_statx)
-+#define __NR_statx 291
-+#endif
-+
-+#if !defined(__NR_io_pgetevents)
-+#define __NR_io_pgetevents 292
-+#endif
-+
-+#if !defined(__NR_rseq)
-+#define __NR_rseq 293
-+#endif
-+
-+#if !defined(__NR_kexec_file_load)
-+#define __NR_kexec_file_load 294
-+#endif
-+
-+#if !defined(__NR_pidfd_send_signal)
-+#define __NR_pidfd_send_signal 424
-+#endif
-+
-+#if !defined(__NR_io_uring_setup)
-+#define __NR_io_uring_setup 425
-+#endif
-+
-+#if !defined(__NR_io_uring_enter)
-+#define __NR_io_uring_enter 426
-+#endif
-+
-+#if !defined(__NR_io_uring_register)
-+#define __NR_io_uring_register 427
-+#endif
-+
-+#if !defined(__NR_open_tree)
-+#define __NR_open_tree 428
-+#endif
-+
-+#if !defined(__NR_move_mount)
-+#define __NR_move_mount 429
-+#endif
-+
-+#if !defined(__NR_fsopen)
-+#define __NR_fsopen 430
-+#endif
-+
-+#if !defined(__NR_fsconfig)
-+#define __NR_fsconfig 431
-+#endif
-+
-+#if !defined(__NR_fsmount)
-+#define __NR_fsmount 432
-+#endif
-+
-+#if !defined(__NR_fspick)
-+#define __NR_fspick 433
-+#endif
-+
-+#if !defined(__NR_pidfd_open)
-+#define __NR_pidfd_open 434
-+#endif
-+
-+#if !defined(__NR_clone3)
-+#define __NR_clone3 435
-+#endif
-+
-+#if !defined(__NR_close_range)
-+#define __NR_close_range 436
-+#endif
-+
-+#if !defined(__NR_openat2)
-+#define __NR_openat2 437
-+#endif
-+
-+#if !defined(__NR_pidfd_getfd)
-+#define __NR_pidfd_getfd 438
-+#endif
-+
-+#if !defined(__NR_faccessat2)
-+#define __NR_faccessat2 439
-+#endif
-+
-+#if !defined(__NR_process_madvise)
-+#define __NR_process_madvise 440
-+#endif
-+
-+#if !defined(__NR_epoll_pwait2)
-+#define __NR_epoll_pwait2 441
-+#endif
-+
-+#if !defined(__NR_mount_setattr)
-+#define __NR_mount_setattr 442
-+#endif
-+
-+#if !defined(__NR_quotactl_path)
-+#define __NR_quotactl_path 443
-+#endif
-+
-+#if !defined(__NR_landlock_create_ruleset)
-+#define __NR_landlock_create_ruleset 444
-+#endif
-+
-+#if !defined(__NR_landlock_add_rule)
-+#define __NR_landlock_add_rule 445
-+#endif
-+
-+#if !defined(__NR_landlock_restrict_self)
-+#define __NR_landlock_restrict_self 446
-+#endif
-+
-+#endif  // SANDBOX_LINUX_SYSTEM_HEADERS_RISCV64_LINUX_SYSCALLS_H_
-Index: chromium-107.0.5304.87/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc
-+++ chromium-107.0.5304.87/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc
-@@ -38,7 +38,7 @@ ResultExpr CrosAmdGpuProcessPolicy::Eval
-     case __NR_sched_setscheduler:
-     case __NR_sysinfo:
-     case __NR_uname:
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_readlink:
-     case __NR_stat:
- #endif
-Index: chromium-107.0.5304.87/sandbox/policy/linux/bpf_gpu_policy_linux.cc
-===================================================================
---- chromium-107.0.5304.87.orig/sandbox/policy/linux/bpf_gpu_policy_linux.cc
-+++ chromium-107.0.5304.87/sandbox/policy/linux/bpf_gpu_policy_linux.cc
-@@ -73,7 +73,7 @@ ResultExpr GpuProcessPolicy::EvaluateSys
-     (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
-     case __NR_ftruncate64:
- #endif
--#if !defined(__aarch64__)
-+#if !defined(__aarch64__) && !defined(__riscv)
-     case __NR_getdents:
- #endif
-     case __NR_getdents64:
-
diff --git a/srcpkgs/qt6-pdf/patches/0007-riscv-sandbox.patch.args b/srcpkgs/qt6-pdf/patches/0007-riscv-sandbox.patch.args
deleted file mode 100644
index d5f38e354e7f00..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0007-riscv-sandbox.patch.args
+++ /dev/null
@@ -1 +0,0 @@
--Np1 --directory=src/3rdparty/chromium/
diff --git a/srcpkgs/qt6-pdf/patches/0008-rsicv-allocator.patch b/srcpkgs/qt6-pdf/patches/0008-rsicv-allocator.patch
deleted file mode 100644
index 98b009f6615790..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0008-rsicv-allocator.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc.gni	2023-10-03 21:49:54.000000000 +0200
-+++ -	2023-10-27 19:05:06.146398062 +0200
-@@ -14,7 +14,7 @@
- if (is_nacl) {
-   # NaCl targets don't use 64-bit pointers.
-   has_64_bit_pointers = false
--} else if (current_cpu == "x64" || current_cpu == "arm64") {
-+} else if (current_cpu == "x64" || current_cpu == "arm64" || current_cpu == "riscv64") {
-   has_64_bit_pointers = true
- } else if (current_cpu == "x86" || current_cpu == "arm") {
-   has_64_bit_pointers = false
diff --git a/srcpkgs/qt6-pdf/patches/0100-REVERT-roll-src-third_party-ffmpeg-m102.patch b/srcpkgs/qt6-pdf/patches/0100-REVERT-roll-src-third_party-ffmpeg-m102.patch
new file mode 100644
index 00000000000000..aaaa3018c57f3b
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0100-REVERT-roll-src-third_party-ffmpeg-m102.patch
@@ -0,0 +1,52 @@
+--- a/src/3rdparty/chromium/media/filters/audio_file_reader_unittest.cc
++++ b/src/3rdparty/chromium/media/filters/audio_file_reader_unittest.cc
+@@ -121,11 +121,11 @@ class AudioFileReaderTest : public testi
+     EXPECT_FALSE(reader_->Open());
+   }
+ 
+-  void RunTestFailingDecode(const char* fn, int expect_read = 0) {
++  void RunTestFailingDecode(const char* fn) {
+     Initialize(fn);
+     EXPECT_TRUE(reader_->Open());
+     std::vector<std::unique_ptr<AudioBus>> decoded_audio_packets;
+-    EXPECT_EQ(reader_->Read(&decoded_audio_packets), expect_read);
++    EXPECT_EQ(reader_->Read(&decoded_audio_packets), 0);
+   }
+ 
+   void RunTestPartialDecode(const char* fn) {
+@@ -219,7 +219,7 @@ TEST_F(AudioFileReaderTest, AAC_ADTS) {
+ }
+ 
+ TEST_F(AudioFileReaderTest, MidStreamConfigChangesFail) {
+-  RunTestFailingDecode("midstream_config_change.mp3", 42624);
++  RunTestFailingDecode("midstream_config_change.mp3");
+ }
+ #endif
+ 
+--- a/src/3rdparty/chromium/media/filters/audio_video_metadata_extractor.cc
++++ b/src/3rdparty/chromium/media/filters/audio_video_metadata_extractor.cc
+@@ -113,15 +113,6 @@ bool AudioVideoMetadataExtractor::Extrac
+     if (!stream)
+       continue;
+ 
+-    void* display_matrix =
+-        av_stream_get_side_data(stream, AV_PKT_DATA_DISPLAYMATRIX, nullptr);
+-    if (display_matrix) {
+-      rotation_ = VideoTransformation::FromFFmpegDisplayMatrix(
+-                      static_cast<int32_t*>(display_matrix))
+-                      .rotation;
+-      info.tags["rotate"] = base::NumberToString(rotation_);
+-    }
+-
+     // Extract dictionary from streams also. Needed for containers that attach
+     // metadata to contained streams instead the container itself, like OGG.
+     ExtractDictionary(stream->metadata, &info.tags);
+@@ -264,6 +255,8 @@ void AudioVideoMetadataExtractor::Extrac
+     if (raw_tags->find(tag->key) == raw_tags->end())
+       (*raw_tags)[tag->key] = tag->value;
+ 
++    if (ExtractInt(tag, "rotate", &rotation_))
++      continue;
+     if (ExtractString(tag, "album", &album_))
+       continue;
+     if (ExtractString(tag, "artist", &artist_))
diff --git a/srcpkgs/qt6-pdf/patches/0104-angle-wayland-include.patch b/srcpkgs/qt6-pdf/patches/0104-angle-wayland-include.patch
new file mode 100644
index 00000000000000..bdae89e41d392a
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0104-angle-wayland-include.patch
@@ -0,0 +1,37 @@
+Patch-Source: https://github.com/archlinux/svntogit-packages/blob/a353833a5a731abfaa465b658f61894a516aa49b/trunk/angle-wayland-include-protocol.patch
+--- a/src/3rdparty/chromium/third_party/angle/BUILD.gn
++++ b/src/3rdparty/chromium/third_party/angle/BUILD.gn
+@@ -588,6 +588,12 @@ config("angle_vulkan_wayland_config") {
+   if (angle_enable_vulkan && angle_use_wayland &&
+       defined(vulkan_wayland_include_dirs)) {
+     include_dirs = vulkan_wayland_include_dirs
++  } else if (angle_enable_vulkan && angle_use_wayland) {
++    include_dirs = [
++      "$wayland_gn_dir/src/src",
++      "$wayland_gn_dir/include/src",
++      "$wayland_gn_dir/include/protocol",
++    ]
+   }
+ }
+ 
+@@ -1176,6 +1182,7 @@ if (angle_use_wayland) {
+     include_dirs = [
+       "$wayland_dir/egl",
+       "$wayland_dir/src",
++      "$wayland_gn_dir/include/protocol",
+     ]
+   }
+ 
+--- a/src/3rdparty/chromium/third_party/angle/src/third_party/volk/BUILD.gn
++++ b/src/3rdparty/chromium/third_party/angle/src/third_party/volk/BUILD.gn
+@@ -21,6 +21,9 @@ source_set("volk") {
+   configs += [ "$angle_root:angle_no_cfi_icall" ]
+   public_deps = [ "$angle_vulkan_headers_dir:vulkan_headers" ]
+   if (angle_use_wayland) {
+-    include_dirs = [ "$wayland_dir/src" ]
++    include_dirs = [
++      "$wayland_dir/src",
++      "$wayland_gn_dir/include/protocol",
++    ]
+   }
+ }
diff --git a/srcpkgs/qt6-pdf/patches/0106-chromium-105.0.5195.52-python-six-1.16.0.patch b/srcpkgs/qt6-pdf/patches/0106-chromium-105.0.5195.52-python-six-1.16.0.patch
new file mode 100644
index 00000000000000..cfa7e05adc9481
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0106-chromium-105.0.5195.52-python-six-1.16.0.patch
@@ -0,0 +1,84 @@
+--- a/src/3rdparty/chromium/third_party/six/src/six.py
++++ b/src/3rdparty/chromium/third_party/six/src/six.py
+@@ -29,7 +29,7 @@ import sys
+ import types
+ 
+ __author__ = "Benjamin Peterson <benjamin@python.org>"
+-__version__ = "1.14.0"
++__version__ = "1.16.0"
+ 
+ 
+ # Useful for very coarse version differentiation.
+@@ -71,6 +71,11 @@ else:
+             MAXSIZE = int((1 << 63) - 1)
+         del X
+ 
++if PY34:
++    from importlib.util import spec_from_loader
++else:
++    spec_from_loader = None
++
+ 
+ def _add_doc(func, doc):
+     """Add documentation to a function."""
+@@ -186,6 +191,11 @@ class _SixMetaPathImporter(object):
+             return self
+         return None
+ 
++    def find_spec(self, fullname, path, target=None):
++        if fullname in self.known_modules:
++            return spec_from_loader(fullname, self)
++        return None
++
+     def __get_module(self, fullname):
+         try:
+             return self.known_modules[fullname]
+@@ -223,6 +233,12 @@ class _SixMetaPathImporter(object):
+         return None
+     get_source = get_code  # same as get_code
+ 
++    def create_module(self, spec):
++        return self.load_module(spec.name)
++
++    def exec_module(self, module):
++        pass
++
+ _importer = _SixMetaPathImporter(__name__)
+ 
+ 
+@@ -890,12 +906,11 @@ def ensure_binary(s, encoding='utf-8', e
+       - `str` -> encoded to `bytes`
+       - `bytes` -> `bytes`
+     """
++    if isinstance(s, binary_type):
++        return s
+     if isinstance(s, text_type):
+         return s.encode(encoding, errors)
+-    elif isinstance(s, binary_type):
+-        return s
+-    else:
+-        raise TypeError("not expecting type '%s'" % type(s))
++    raise TypeError("not expecting type '%s'" % type(s))
+ 
+ 
+ def ensure_str(s, encoding='utf-8', errors='strict'):
+@@ -909,12 +924,15 @@ def ensure_str(s, encoding='utf-8', erro
+       - `str` -> `str`
+       - `bytes` -> decoded to `str`
+     """
+-    if not isinstance(s, (text_type, binary_type)):
+-        raise TypeError("not expecting type '%s'" % type(s))
++    # Optimization: Fast return for the common case.
++    if type(s) is str:
++        return s
+     if PY2 and isinstance(s, text_type):
+-        s = s.encode(encoding, errors)
++        return s.encode(encoding, errors)
+     elif PY3 and isinstance(s, binary_type):
+-        s = s.decode(encoding, errors)
++        return s.decode(encoding, errors)
++    elif not isinstance(s, (text_type, binary_type)):
++        raise TypeError("not expecting type '%s'" % type(s))
+     return s
+ 
+ 
diff --git a/srcpkgs/qt6-pdf/patches/0106-chromium-system-nodejs.patch b/srcpkgs/qt6-pdf/patches/0106-chromium-system-nodejs.patch
deleted file mode 100644
index 1648f764ea19fe..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0106-chromium-system-nodejs.patch
+++ /dev/null
@@ -1,29 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/node/node.py
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/node/node.py
-@@ -18,25 +18,7 @@ def which(cmd):
-     return None
- 
- def GetBinaryPath():
--  if sys.platform == 'win32':
--    nodejs = which('node.exe')
--    if nodejs:
--      return nodejs
--  else:
--    nodejs = which('nodejs')
--    if nodejs:
--      return nodejs
--    nodejs = which('node')
--    if nodejs:
--      return nodejs
--
--  darwin_name = ('node-darwin-arm64' if platform.machine() == 'arm64' else
--                 'node-darwin-x64')
--  return os_path.join(os_path.dirname(__file__), *{
--    'Darwin': ('mac', darwin_name, 'bin', 'node'),
--    'Linux': ('linux', 'node-linux-x64', 'bin', 'node'),
--    'Windows': ('win', 'node.exe'),
--  }[platform.system()])
-+  return "/usr/bin/node"
- 
- 
- def RunNode(cmd_parts, stdout=None):
diff --git a/srcpkgs/qt6-pdf/patches/0107-chromium-114-maldoca-include.patch b/srcpkgs/qt6-pdf/patches/0107-chromium-114-maldoca-include.patch
new file mode 100644
index 00000000000000..ae92efb49712cf
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0107-chromium-114-maldoca-include.patch
@@ -0,0 +1,20 @@
+From 345c58f1d85286b394c05bb8d871ac8173be90a3 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Fri, 31 Mar 2023 16:26:06 +0000
+Subject: [PATCH] IWYU: add stdint.h for int types in maldoca
+
+---
+ third_party/maldoca/src/maldoca/ole/header.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/src/3rdparty/chromium/third_party/maldoca/src/maldoca/ole/header.h
++++ b/src/3rdparty/chromium/third_party/maldoca/src/maldoca/ole/header.h
+@@ -43,6 +43,8 @@
+ #ifndef MALDOCA_OLE_HEADER_H_
+ #define MALDOCA_OLE_HEADER_H_
+ 
++#include <stdint.h>
++
+ #include "absl/strings/string_view.h"
+ 
+ namespace maldoca {
diff --git a/srcpkgs/qt6-pdf/patches/0108-chromium-115-compiler-SkColor4f.patch b/srcpkgs/qt6-pdf/patches/0108-chromium-115-compiler-SkColor4f.patch
new file mode 100644
index 00000000000000..32e3dfbfcb396b
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0108-chromium-115-compiler-SkColor4f.patch
@@ -0,0 +1,26 @@
+Patch-Source: https://src.fedoraproject.org/rpms/chromium/blob/1f8fd846d2cc72c90c73c9867619f0da43b9c816/f/chromium-115-compiler-SkColor4f.patch
+--- a/src/3rdparty/chromium/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc
++++ b/src/3rdparty/chromium/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc
+@@ -76,6 +76,7 @@ bool ParseCanvasColorString(const String
+ 
+ void CanvasStyle::ApplyToFlags(cc::PaintFlags& flags,
+                                float global_alpha) const {
++  SkColor4f custom_color = SkColor4f{0.0f, 0.0f, 0.0f, global_alpha};
+   switch (type_) {
+     case kColor:
+       ApplyColorToFlags(flags, global_alpha);
+@@ -83,12 +84,12 @@ void CanvasStyle::ApplyToFlags(cc::Paint
+     case kGradient:
+       GetCanvasGradient()->GetGradient()->ApplyToFlags(flags, SkMatrix::I(),
+                                                        ImageDrawOptions());
+-      flags.setColor(SkColor4f{0.0f, 0.0f, 0.0f, global_alpha});
++      flags.setColor(custom_color);
+       break;
+     case kImagePattern:
+       GetCanvasPattern()->GetPattern()->ApplyToFlags(
+           flags, AffineTransformToSkMatrix(GetCanvasPattern()->GetTransform()));
+-      flags.setColor(SkColor4f{0.0f, 0.0f, 0.0f, global_alpha});
++      flags.setColor(custom_color);
+       break;
+     default:
+       NOTREACHED();
diff --git a/srcpkgs/qt6-pdf/patches/0108-chromium-cursed^Uscoped_file.patch b/srcpkgs/qt6-pdf/patches/0108-chromium-cursed^Uscoped_file.patch
deleted file mode 100644
index dd31da9790adce..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0108-chromium-cursed^Uscoped_file.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/files/scoped_file_linux.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/files/scoped_file_linux.cc
-@@ -77,15 +77,3 @@ bool IsFDOwned(int fd) {
- }
- 
- }  // namespace base
--
--extern "C" {
--
--int __close(int);
--
--__attribute__((visibility("default"), noinline)) int close(int fd) {
--  if (base::IsFDOwned(fd) && g_is_ownership_enforced)
--    CrashOnFdOwnershipViolation();
--  return __close(fd);
--}
--
--}  // extern "C"
diff --git a/srcpkgs/qt6-pdf/patches/0110-chromium-117-typename.patch b/srcpkgs/qt6-pdf/patches/0110-chromium-117-typename.patch
new file mode 100644
index 00000000000000..6e4af0c0e074fa
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0110-chromium-117-typename.patch
@@ -0,0 +1,91 @@
+--- a/src/3rdparty/chromium/components/optimization_guide/core/tflite_model_executor.h
++++ b/src/3rdparty/chromium/components/optimization_guide/core/tflite_model_executor.h
+@@ -240,7 +240,7 @@ class TFLiteModelExecutor : public Model
+   void SendForBatchExecution(
+       BatchExecutionCallback callback_on_complete,
+       base::TimeTicks start_time,
+-      ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
++      typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
+       override {
+     DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+@@ -262,7 +262,7 @@ class TFLiteModelExecutor : public Model
+   // Starts the synchronous execution of the model. Returns model outputs.
+   // Model needs to be loaded. Synchronous calls do not load or unload model.
+   std::vector<absl::optional<OutputType>> SendForBatchExecutionSync(
+-      ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
++      typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
+       override {
+     DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+@@ -417,7 +417,7 @@ class TFLiteModelExecutor : public Model
+   // executes it on the model execution thread.
+   void LoadModelFileAndBatchExecute(
+       BatchExecutionCallback callback_on_complete,
+-      ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs) {
++      typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs) {
+     DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ 
+@@ -434,7 +434,7 @@ class TFLiteModelExecutor : public Model
+ 
+   // Batch executes the loaded model for inputs.
+   void BatchExecuteLoadedModel(
+-      ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
++      typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
+       std::vector<absl::optional<OutputType>>* outputs) {
+     DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+@@ -494,7 +494,7 @@ class TFLiteModelExecutor : public Model
+   // Unloads the model if needed.
+   void BatchExecuteLoadedModelAndRunCallback(
+       BatchExecutionCallback callback_on_complete,
+-      ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
++      typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
+       ExecutionStatus execution_status) {
+     DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+--- a/src/3rdparty/chromium/components/supervised_user/core/browser/proto_fetcher.cc
++++ b/src/3rdparty/chromium/components/supervised_user/core/browser/proto_fetcher.cc
+@@ -399,7 +399,7 @@ class RetryingFetcherImpl final : public
+   RetryingFetcherImpl(const RetryingFetcherImpl&) = delete;
+   RetryingFetcherImpl& operator=(const RetryingFetcherImpl&) = delete;
+ 
+-  void Start(ProtoFetcher<Response>::Callback callback) override {
++  void Start(typename ProtoFetcher<Response>::Callback callback) override {
+     callback_ = std::move(callback);
+     Retry();
+   }
+@@ -435,7 +435,7 @@ class RetryingFetcherImpl final : public
+   }
+ 
+   // Client callback.
+-  ProtoFetcher<Response>::Callback callback_;
++  typename ProtoFetcher<Response>::Callback callback_;
+ 
+   // Retry controls.
+   base::OneShotTimer timer_;
+@@ -578,7 +578,7 @@ ParallelFetchManager<Request, Response>:
+ template <typename Request, typename Response>
+ void ParallelFetchManager<Request, Response>::Fetch(
+     const Request& request,
+-    Fetcher::Callback callback) {
++    typename Fetcher::Callback callback) {
+   CHECK(callback) << "Use base::DoNothing() instead of empty callback.";
+   KeyType key = requests_in_flight_.Add(MakeFetcher(request));
+   requests_in_flight_.Lookup(key)->Start(
+--- a/src/3rdparty/chromium/components/supervised_user/core/browser/proto_fetcher.h
++++ b/src/3rdparty/chromium/components/supervised_user/core/browser/proto_fetcher.h
+@@ -165,10 +165,10 @@ class ParallelFetchManager {
+ 
+   // Starts the fetch. Underlying fetcher is stored internally, and will be
+   // cleaned up after finish or when this manager is destroyed.
+-  void Fetch(const Request& request, Fetcher::Callback callback);
++  void Fetch(const Request& request, typename Fetcher::Callback callback);
+ 
+  private:
+-  using KeyType = base::IDMap<std::unique_ptr<Fetcher>>::KeyType;
++  using KeyType = typename base::IDMap<std::unique_ptr<Fetcher>>::KeyType;
+ 
+   // Remove fetcher under key from requests_in_flight_.
+   void Remove(KeyType key);
diff --git a/srcpkgs/qt6-pdf/patches/0111-chromium-cstdint.patch b/srcpkgs/qt6-pdf/patches/0111-chromium-cstdint.patch
deleted file mode 100644
index f5787621b579ce..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0111-chromium-cstdint.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/net/third_party/quiche/src/quiche/http2/adapter/window_manager.h
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/net/third_party/quiche/src/quiche/http2/adapter/window_manager.h
-@@ -3,6 +3,7 @@
- 
- #include <stddef.h>
- 
-+#include <cstdint>
- #include <functional>
- 
- #include "quiche/common/platform/api/quiche_export.h"
diff --git a/srcpkgs/qt6-pdf/patches/0112-chromium-118-missing-header-files.patch b/srcpkgs/qt6-pdf/patches/0112-chromium-118-missing-header-files.patch
new file mode 100644
index 00000000000000..43861ea7321752
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0112-chromium-118-missing-header-files.patch
@@ -0,0 +1,379 @@
+--- a/src/3rdparty/chromium/base/memory/ref_counted.h
++++ b/src/3rdparty/chromium/base/memory/ref_counted.h
+@@ -6,6 +6,7 @@
+ #define BASE_MEMORY_REF_COUNTED_H_
+ 
+ #include <stddef.h>
++#include <limits>
+ 
+ #include <limits>
+ #include <utility>
+--- a/src/3rdparty/chromium/base/check_op.h
++++ b/src/3rdparty/chromium/base/check_op.h
+@@ -5,6 +5,7 @@
+ #ifndef BASE_CHECK_OP_H_
+ #define BASE_CHECK_OP_H_
+ 
++#include <cstdint>
+ #include <cstddef>
+ #include <string>
+ #include <string_view>
+--- a/src/3rdparty/chromium/base/debug/profiler.h
++++ b/src/3rdparty/chromium/base/debug/profiler.h
+@@ -8,6 +8,7 @@
+ #include <stddef.h>
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <string>
+ 
+ #include "base/base_export.h"
+--- a/src/3rdparty/chromium/gpu/config/gpu_feature_info.h
++++ b/src/3rdparty/chromium/gpu/config/gpu_feature_info.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <string>
+ #include <vector>
+ 
+--- a/src/3rdparty/chromium/net/base/net_export.h
++++ b/src/3rdparty/chromium/net/base/net_export.h
+@@ -5,6 +5,8 @@
+ #ifndef NET_BASE_NET_EXPORT_H_
+ #define NET_BASE_NET_EXPORT_H_
+ 
++#include <cstdint>
++
+ // Defines NET_EXPORT so that functionality implemented by the net module can
+ // be exported to consumers, and NET_EXPORT_PRIVATE that allows unit tests to
+ // access features not intended to be used directly by real consumers.
+--- a/src/3rdparty/chromium/sandbox/linux/syscall_broker/broker_file_permission.h
++++ b/src/3rdparty/chromium/sandbox/linux/syscall_broker/broker_file_permission.h
+@@ -5,6 +5,7 @@
+ #ifndef SANDBOX_LINUX_SYSCALL_BROKER_BROKER_FILE_PERMISSION_H_
+ #define SANDBOX_LINUX_SYSCALL_BROKER_BROKER_FILE_PERMISSION_H_
+ 
++#include <cstdint>
+ #include <bitset>
+ #include <cstdint>
+ #include <string>
+--- a/src/3rdparty/chromium/third_party/abseil-cpp/absl/strings/string_view.h
++++ b/src/3rdparty/chromium/third_party/abseil-cpp/absl/strings/string_view.h
+@@ -27,6 +27,7 @@
+ #ifndef ABSL_STRINGS_STRING_VIEW_H_
+ #define ABSL_STRINGS_STRING_VIEW_H_
+ 
++#include <cstdint>
+ #include <algorithm>
+ #include <cassert>
+ #include <cstddef>
+--- a/src/3rdparty/chromium/third_party/angle/include/GLSLANG/ShaderVars.h
++++ b/src/3rdparty/chromium/third_party/angle/include/GLSLANG/ShaderVars.h
+@@ -10,6 +10,7 @@
+ #ifndef GLSLANG_SHADERVARS_H_
+ #define GLSLANG_SHADERVARS_H_
+ 
++#include <cstdint>
+ #include <algorithm>
+ #include <array>
+ #include <cstdint>
+--- a/src/3rdparty/chromium/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h
++++ b/src/3rdparty/chromium/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <array>
+ #include <cstdint>
+ #include <functional>
+--- a/src/3rdparty/chromium/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h
++++ b/src/3rdparty/chromium/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h
+@@ -15,6 +15,7 @@
+ #ifndef SRC_TINT_LANG_SPIRV_READER_AST_PARSER_NAMER_H_
+ #define SRC_TINT_LANG_SPIRV_READER_AST_PARSER_NAMER_H_
+ 
++#include <cstdint>
+ #include <string>
+ #include <unordered_map>
+ #include <vector>
+--- a/src/3rdparty/chromium/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h
++++ b/src/3rdparty/chromium/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <functional>
+ #include <map>
+ #include <set>
+--- a/src/3rdparty/chromium/third_party/swiftshader/src/System/LRUCache.hpp
++++ b/src/3rdparty/chromium/third_party/swiftshader/src/System/LRUCache.hpp
+@@ -17,6 +17,7 @@
+ 
+ #include "System/Debug.hpp"
+ 
++#include <cstdint>
+ #include <cstddef>
+ #include <cstdint>
+ #include <functional>
+--- a/src/3rdparty/chromium/ui/gfx/geometry/linear_gradient.h
++++ b/src/3rdparty/chromium/ui/gfx/geometry/linear_gradient.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <array>
+ #include <cstddef>
+ #include <cstdint>
+--- a/src/3rdparty/chromium/third_party/ruy/src/ruy/profiler/instrumentation.h
++++ b/src/3rdparty/chromium/third_party/ruy/src/ruy/profiler/instrumentation.h
+@@ -17,6 +17,7 @@ limitations under the License.
+ #define RUY_RUY_PROFILER_INSTRUMENTATION_H_
+ 
+ #ifdef RUY_PROFILER
++#include <string>
+ #include <cstdio>
+ #include <mutex>
+ #include <vector>
+--- a/src/3rdparty/chromium/base/containers/flat_map.h
++++ b/src/3rdparty/chromium/base/containers/flat_map.h
+@@ -5,6 +5,7 @@
+ #ifndef BASE_CONTAINERS_FLAT_MAP_H_
+ #define BASE_CONTAINERS_FLAT_MAP_H_
+ 
++#include <cstdint>
+ #include <functional>
+ #include <tuple>
+ #include <type_traits>
+--- a/src/3rdparty/chromium/components/crash/core/app/crash_reporter_client.h
++++ b/src/3rdparty/chromium/components/crash/core/app/crash_reporter_client.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <string>
+ 
+ #include "build/build_config.h"
+--- a/src/3rdparty/chromium/ui/base/prediction/kalman_filter.h
++++ b/src/3rdparty/chromium/ui/base/prediction/kalman_filter.h
+@@ -7,6 +7,8 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
++
+ #include "base/component_export.h"
+ #include "ui/gfx/geometry/matrix3_f.h"
+ 
+--- a/src/3rdparty/chromium/components/password_manager/core/browser/generation/password_generator.h
++++ b/src/3rdparty/chromium/components/password_manager/core/browser/generation/password_generator.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <string>
+ 
+ 
+--- a/src/3rdparty/chromium/components/feature_engagement/internal/event_storage_validator.h
++++ b/src/3rdparty/chromium/components/feature_engagement/internal/event_storage_validator.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <string>
+ 
+ namespace feature_engagement {
+--- a/src/3rdparty/chromium/components/feature_engagement/internal/never_event_storage_validator.h
++++ b/src/3rdparty/chromium/components/feature_engagement/internal/never_event_storage_validator.h
+@@ -5,6 +5,7 @@
+ #ifndef COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_NEVER_EVENT_STORAGE_VALIDATOR_H_
+ #define COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_NEVER_EVENT_STORAGE_VALIDATOR_H_
+ 
++#include <cstdint>
+ #include <string>
+ 
+ #include "components/feature_engagement/internal/event_storage_validator.h"
+--- a/src/3rdparty/chromium/components/autofill/core/browser/autofill_ablation_study.h
++++ b/src/3rdparty/chromium/components/autofill/core/browser/autofill_ablation_study.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <string>
+ 
+ class GURL;
+--- a/src/3rdparty/chromium/components/payments/content/utility/fingerprint_parser.h
++++ b/src/3rdparty/chromium/components/payments/content/utility/fingerprint_parser.h
+@@ -5,6 +5,7 @@
+ #ifndef COMPONENTS_PAYMENTS_CONTENT_UTILITY_FINGERPRINT_PARSER_H_
+ #define COMPONENTS_PAYMENTS_CONTENT_UTILITY_FINGERPRINT_PARSER_H_
+ 
++#include <cstdint>
+ #include <stddef.h>
+ #include <stdint.h>
+ 
+--- a/src/3rdparty/chromium/pdf/document_attachment_info.h
++++ b/src/3rdparty/chromium/pdf/document_attachment_info.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <string>
+ 
+ 
+--- a/src/3rdparty/chromium/third_party/pdfium/constants/annotation_flags.h
++++ b/src/3rdparty/chromium/third_party/pdfium/constants/annotation_flags.h
+@@ -7,6 +7,8 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdint>
++
+ namespace pdfium {
+ namespace annotation_flags {
+ 
+--- a/src/3rdparty/chromium/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
++++ b/src/3rdparty/chromium/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
+@@ -2884,6 +2884,7 @@ static void vma_aligned_free(void* VMA_N
+ 
+ // Define this macro to 1 to enable functions: vmaBuildStatsString, vmaFreeStatsString.
+ #if VMA_STATS_STRING_ENABLED
++#include <stdio.h>
+     static inline void VmaUint32ToStr(char* VMA_NOT_NULL outStr, size_t strLen, uint32_t num)
+     {
+         snprintf(outStr, strLen, "%u", static_cast<unsigned int>(num));
+--- a/src/3rdparty/chromium/gin/time_clamper.h
++++ b/src/3rdparty/chromium/gin/time_clamper.h
+@@ -48,7 +48,7 @@ class GIN_EXPORT TimeClamper {
+     const int64_t micros = now_micros % 1000;
+     // abs() is necessary for devices with times before unix-epoch (most likely
+     // configured incorrectly).
+-    if (abs(micros) + kResolutionMicros < 1000) {
++    if (std::abs(micros) + kResolutionMicros < 1000) {
+       return now_micros / 1000;
+     }
+     return ClampTimeResolution(now_micros) / 1000;
+--- a/src/3rdparty/chromium/chrome/test/chromedriver/chrome/web_view_impl.cc
++++ b/src/3rdparty/chromium/chrome/test/chromedriver/chrome/web_view_impl.cc
+@@ -11,6 +11,7 @@
+ #include <queue>
+ #include <utility>
+ #include <vector>
++#include <cstring>
+ 
+ #include "base/check.h"
+ #include "base/files/file_path.h"
+--- a/src/3rdparty/chromium/skia/ext/skcolorspace_trfn.cc
++++ b/src/3rdparty/chromium/skia/ext/skcolorspace_trfn.cc
+@@ -3,6 +3,7 @@
+ // found in the LICENSE file.
+ 
+ #include "skia/ext/skcolorspace_trfn.h"
++#include <cmath>
+ 
+ #include <cmath>
+ 
+--- a/src/3rdparty/chromium/third_party/webrtc/common_video/h264/sps_parser.h
++++ b/src/3rdparty/chromium/third_party/webrtc/common_video/h264/sps_parser.h
+@@ -11,6 +11,7 @@
+ #ifndef COMMON_VIDEO_H264_SPS_PARSER_H_
+ #define COMMON_VIDEO_H264_SPS_PARSER_H_
+ 
++#include <cstdint>
+ #include "absl/types/optional.h"
+ #include "rtc_base/bitstream_reader.h"
+ 
+--- a/src/3rdparty/chromium/third_party/webrtc/modules/include/module_common_types_public.h
++++ b/src/3rdparty/chromium/third_party/webrtc/modules/include/module_common_types_public.h
+@@ -11,6 +11,7 @@
+ #ifndef MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
+ #define MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
+ 
++#include <cstdint>
+ #include <limits>
+ 
+ #include "absl/types/optional.h"
+--- a/src/3rdparty/chromium/ui/gfx/linux/drm_util_linux.h
++++ b/src/3rdparty/chromium/ui/gfx/linux/drm_util_linux.h
+@@ -9,6 +9,8 @@
+ 
+ #include "ui/gfx/buffer_types.h"
+ 
++#include <cstdint>
++
+ namespace ui {
+ 
+ int GetFourCCFormatFromBufferFormat(gfx::BufferFormat format);
+--- a/src/3rdparty/chromium/third_party/webrtc/audio/utility/channel_mixer.cc
++++ b/src/3rdparty/chromium/third_party/webrtc/audio/utility/channel_mixer.cc
+@@ -8,6 +8,8 @@
+  *  be found in the AUTHORS file in the root of the source tree.
+  */
+ 
++#include <cstring>
++
+ #include "audio/utility/channel_mixer.h"
+ 
+ #include "audio/utility/channel_mixing_matrix.h"
+--- a/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc
++++ b/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc
+@@ -10,6 +10,7 @@
+ 
+ #include "modules/video_coding/utility/ivf_file_reader.h"
+ 
++#include <cstring>
+ #include <string>
+ #include <vector>
+ 
+--- a/src/3rdparty/chromium/third_party/ipcz/src/ipcz/router_link.h
++++ b/src/3rdparty/chromium/third_party/ipcz/src/ipcz/router_link.h
+@@ -5,6 +5,7 @@
+ #ifndef IPCZ_SRC_IPCZ_ROUTER_LINK_H_
+ #define IPCZ_SRC_IPCZ_ROUTER_LINK_H_
+ 
++#include <memory>
+ #include <cstddef>
+ #include <functional>
+ #include <memory>
+--- a/src/3rdparty/chromium/third_party/material_color_utilities/src/cpp/palettes/tones.cc
++++ b/src/3rdparty/chromium/third_party/material_color_utilities/src/cpp/palettes/tones.cc
+@@ -14,6 +14,7 @@
+  * limitations under the License.
+  */
+ 
++#include <cmath>
+ #include "cpp/palettes/tones.h"
+ 
+ #include <cmath>
+--- a/src/3rdparty/chromium/services/device/public/cpp/generic_sensor/sensor_reading.h
++++ b/src/3rdparty/chromium/services/device/public/cpp/generic_sensor/sensor_reading.h
+@@ -8,6 +8,9 @@
+ #include <stddef.h>
+ #include <stdint.h>
+ 
++#include <cstddef>
++#include <cstdint>
++
+ #include <type_traits>
+ 
+ namespace device {
+--- a/src/3rdparty/chromium/components/gwp_asan/client/lightweight_detector.h
++++ b/src/3rdparty/chromium/components/gwp_asan/client/lightweight_detector.h
+@@ -5,6 +5,8 @@
+ #ifndef COMPONENTS_GWP_ASAN_CLIENT_LIGHTWEIGHT_DETECTOR_H_
+ #define COMPONENTS_GWP_ASAN_CLIENT_LIGHTWEIGHT_DETECTOR_H_
+ 
++#include <atomic>
++
+ #include "base/gtest_prod_util.h"
+ #include "components/gwp_asan/client/export.h"
+ #include "components/gwp_asan/common/lightweight_detector_state.h"
diff --git a/srcpkgs/qt6-pdf/patches/0113-chromium-118-no_matching_constructor.patch b/srcpkgs/qt6-pdf/patches/0113-chromium-118-no_matching_constructor.patch
new file mode 100644
index 00000000000000..97926daa8ca0ef
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0113-chromium-118-no_matching_constructor.patch
@@ -0,0 +1,410 @@
+--- a/src/3rdparty/chromium/ui/base/wayland/color_manager_util.h
++++ b/src/3rdparty/chromium/ui/base/wayland/color_manager_util.h
+@@ -52,53 +52,53 @@ constexpr auto kChromaticityMap = base::
+     zcr_color_manager_v1_chromaticity_names,
+     PrimaryVersion>(
+     {{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_525_LINE,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::SMPTE170M,
+-                     kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::SMPTE170M,
++                     kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_625_LINE,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT470BG,
+-                     kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::BT470BG,
++                     kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE170M,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::SMPTE170M,
+-                     kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::SMPTE170M,
++                     kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT709,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT2020,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT2020, kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::BT2020, kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SRGB,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_DISPLAYP3,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::P3, kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::P3, kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_ADOBERGB,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::ADOBE_RGB,
+-                     kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::ADOBE_RGB,
++                     kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::WIDE_GAMUT_COLOR_SPIN,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::BT470M,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::SMPTE240M,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::XYZ_D50,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::SMPTEST428_1,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::SMPTEST431_2,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::FILM,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM_SINCE_VERSION)}});
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM_SINCE_VERSION}}});
+ 
+ // A map from the zcr_color_manager_v1 eotf_names enum values
+ // representing well-known EOTFs, to their equivalent TransferIDs.
+@@ -107,65 +107,65 @@ constexpr auto kEotfMap = base::MakeFixe
+     zcr_color_manager_v1_eotf_names,
+     TransferVersion>({
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
+-     TransferVersion(gfx::ColorSpace::TransferID::LINEAR,
+-                     kDefaultSinceVersion)},
++     TransferVersion{gfx::ColorSpace::TransferID::LINEAR,
++                     kDefaultSinceVersion}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB,
+-     TransferVersion(gfx::ColorSpace::TransferID::SRGB, kDefaultSinceVersion)},
++     TransferVersion{gfx::ColorSpace::TransferID::SRGB, kDefaultSinceVersion}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709,
+-     TransferVersion(gfx::ColorSpace::TransferID::BT709,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::BT709,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2087,
+-     TransferVersion(gfx::ColorSpace::TransferID::GAMMA24,
+-                     kDefaultSinceVersion)},
++     TransferVersion{gfx::ColorSpace::TransferID::GAMMA24,
++                     kDefaultSinceVersion}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_ADOBERGB,
+      // This is ever so slightly inaccurate. The number ought to be
+      // 2.19921875f, not 2.2
+-     TransferVersion(gfx::ColorSpace::TransferID::GAMMA22,
+-                     kDefaultSinceVersion)},
++     TransferVersion{gfx::ColorSpace::TransferID::GAMMA22,
++                     kDefaultSinceVersion}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_PQ,
+-     TransferVersion(gfx::ColorSpace::TransferID::PQ, kDefaultSinceVersion)},
++     TransferVersion{gfx::ColorSpace::TransferID::PQ, kDefaultSinceVersion}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG,
+-     TransferVersion(gfx::ColorSpace::TransferID::HLG,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::HLG,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M,
+-     TransferVersion(gfx::ColorSpace::TransferID::SMPTE170M,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::SMPTE170M,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M,
+-     TransferVersion(gfx::ColorSpace::TransferID::SMPTE240M,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::SMPTE240M,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1,
+-     TransferVersion(
++     TransferVersion{
+          gfx::ColorSpace::TransferID::SMPTEST428_1,
+-         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1_SINCE_VERSION)},
++         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG,
+-     TransferVersion(gfx::ColorSpace::TransferID::LOG,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::LOG,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT,
+-     TransferVersion(gfx::ColorSpace::TransferID::LOG_SQRT,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::LOG_SQRT,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4,
+-     TransferVersion(
++     TransferVersion{
+          gfx::ColorSpace::TransferID::IEC61966_2_4,
+-         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4_SINCE_VERSION)},
++         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG,
+-     TransferVersion(gfx::ColorSpace::TransferID::BT1361_ECG,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::BT1361_ECG,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10,
+-     TransferVersion(gfx::ColorSpace::TransferID::BT2020_10,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::BT2020_10,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12,
+-     TransferVersion(gfx::ColorSpace::TransferID::BT2020_12,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::BT2020_12,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS,
+-     TransferVersion(
++     TransferVersion{
+          gfx::ColorSpace::TransferID::SCRGB_LINEAR_80_NITS,
+-         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS_SINCE_VERSION)},
++         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18,
+-     TransferVersion(gfx::ColorSpace::TransferID::GAMMA18,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::GAMMA18,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28,
+-     TransferVersion(gfx::ColorSpace::TransferID::GAMMA28,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::GAMMA28,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28_SINCE_VERSION}},
+ });
+ 
+ // A map from the SDR zcr_color_manager_v1 eotf_names enum values
+@@ -174,18 +174,18 @@ constexpr auto kEotfMap = base::MakeFixe
+ constexpr auto kTransferMap =
+     base::MakeFixedFlatMap<zcr_color_manager_v1_eotf_names, TransferFnVersion>({
+         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
+-         TransferFnVersion(SkNamedTransferFn::kLinear, kDefaultSinceVersion)},
++         TransferFnVersion{SkNamedTransferFn::kLinear, kDefaultSinceVersion}},
+         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB,
+-         TransferFnVersion(SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion)},
++         TransferFnVersion{SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion}},
+         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709,
+-         TransferFnVersion(
++         TransferFnVersion{
+              SkNamedTransferFnExt::kRec709,
+-             ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION)},
++             ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION}},
+         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2087,
+-         TransferFnVersion(gamma24, kDefaultSinceVersion)},
++         TransferFnVersion{gamma24, kDefaultSinceVersion}},
+         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_ADOBERGB,
+-         TransferFnVersion(SkNamedTransferFnExt::kA98RGB,
+-                           kDefaultSinceVersion)},
++         TransferFnVersion{SkNamedTransferFnExt::kA98RGB,
++                           kDefaultSinceVersion}},
+     });
+ 
+ // A map from the HDR zcr_color_manager_v1 eotf_names enum values
+@@ -194,68 +194,68 @@ constexpr auto kTransferMap =
+ constexpr auto kHDRTransferMap =
+     base::MakeFixedFlatMap<zcr_color_manager_v1_eotf_names, TransferFnVersion>(
+         {{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
+-          TransferFnVersion(SkNamedTransferFn::kLinear, kDefaultSinceVersion)},
++          TransferFnVersion{SkNamedTransferFn::kLinear, kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB,
+-          TransferFnVersion(SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion)},
++          TransferFnVersion{SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_PQ,
+-          TransferFnVersion(SkNamedTransferFn::kPQ, kDefaultSinceVersion)},
++          TransferFnVersion{SkNamedTransferFn::kPQ, kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG,
+-          TransferFnVersion(SkNamedTransferFn::kHLG,
+-                            ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION)},
++          TransferFnVersion{SkNamedTransferFn::kHLG,
++                            ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION}},
+          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10,
+-          TransferFnVersion(
++          TransferFnVersion{
+               SkNamedTransferFnExt::kSRGBExtended1023Over510,
+-              ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10_SINCE_VERSION)}});
++              ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10_SINCE_VERSION}}});
+ 
+ // A map from zcr_color_manager_v1 matrix_names enum values to
+ // gfx::ColorSpace::MatrixIDs.
+ constexpr auto kMatrixMap =
+     base::MakeFixedFlatMap<zcr_color_manager_v1_matrix_names, MatrixVersion>(
+         {{ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_RGB,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::RGB, kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::RGB, kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT709,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::BT709,
+-                        kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::BT709,
++                        kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG,
+-          MatrixVersion(
++          MatrixVersion{
+               gfx::ColorSpace::MatrixID::BT470BG,
+-              ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG_SINCE_VERSION)},
++              ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG_SINCE_VERSION}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT2020_NCL,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::BT2020_NCL,
+-                        kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::BT2020_NCL,
++                        kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT2020_CL,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::BT2020_CL,
+-                        kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::BT2020_CL,
++                        kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_FCC,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::FCC, kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::FCC, kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::YCOCG,
+-                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG_SINCE_VERSION)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::YCOCG,
++                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG_SINCE_VERSION}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::YDZDX,
+-                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX_SINCE_VERSION)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::YDZDX,
++                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX_SINCE_VERSION}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::GBR,
+-                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR_SINCE_VERSION)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::GBR,
++                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR_SINCE_VERSION}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_SMPTE170M,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::SMPTE170M,
+-                        kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::SMPTE170M,
++                        kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_SMPTE240M,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::SMPTE240M,
+-                        kDefaultSinceVersion)}});
++          MatrixVersion{gfx::ColorSpace::MatrixID::SMPTE240M,
++                        kDefaultSinceVersion}}});
+ 
+ // A map from zcr_color_manager_v1 range_names enum values to
+ // gfx::ColorSpace::RangeIDs.
+ constexpr auto kRangeMap =
+     base::MakeFixedFlatMap<zcr_color_manager_v1_range_names, RangeVersion>(
+         {{ZCR_COLOR_MANAGER_V1_RANGE_NAMES_LIMITED,
+-          RangeVersion(gfx::ColorSpace::RangeID::LIMITED,
+-                       kDefaultSinceVersion)},
++          RangeVersion{gfx::ColorSpace::RangeID::LIMITED,
++                       kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_RANGE_NAMES_FULL,
+-          RangeVersion(gfx::ColorSpace::RangeID::FULL, kDefaultSinceVersion)},
++          RangeVersion{gfx::ColorSpace::RangeID::FULL, kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_RANGE_NAMES_DERIVED,
+-          RangeVersion(gfx::ColorSpace::RangeID::DERIVED,
+-                       kDefaultSinceVersion)}});
++          RangeVersion{gfx::ColorSpace::RangeID::DERIVED,
++                       kDefaultSinceVersion}}});
+ 
+ zcr_color_manager_v1_chromaticity_names ToColorManagerChromaticity(
+     gfx::ColorSpace::PrimaryID primaryID,
+--- a/src/3rdparty/chromium/chrome/test/chromedriver/capabilities.cc
++++ b/src/3rdparty/chromium/chrome/test/chromedriver/capabilities.cc
+@@ -346,7 +346,7 @@ Status ParseMobileEmulation(const base::
+                         "'version' field of type string");
+         }
+ 
+-        brands.emplace_back(*brand, *version);
++        brands.emplace_back() = {*brand, *version};
+       }
+ 
+       client_hints.brands = std::move(brands);
+@@ -384,7 +384,7 @@ Status ParseMobileEmulation(const base::
+                         "a 'version' field of type string");
+         }
+ 
+-        full_version_list.emplace_back(*brand, *version);
++        full_version_list.emplace_back() = {*brand, *version};
+       }
+ 
+       client_hints.full_version_list = std::move(full_version_list);
+--- a/src/3rdparty/chromium/base/trace_event/trace_log.cc
++++ b/src/3rdparty/chromium/base/trace_event/trace_log.cc
+@@ -2190,8 +2190,8 @@ void TraceLog::SetTraceBufferForTesting(
+ #if BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY)
+ void TraceLog::OnSetup(const perfetto::DataSourceBase::SetupArgs& args) {
+   AutoLock lock(track_event_lock_);
+-  track_event_sessions_.emplace_back(args.internal_instance_index, *args.config,
+-                                     args.backend_type);
++  track_event_sessions_.emplace_back() = {args.internal_instance_index, *args.config,
++                                     args.backend_type};
+ }
+ 
+ void TraceLog::OnStart(const perfetto::DataSourceBase::StartArgs&) {
+--- a/src/3rdparty/chromium/ui/gtk/gtk_ui.cc
++++ b/src/3rdparty/chromium/ui/gtk/gtk_ui.cc
+@@ -955,11 +955,11 @@ ui::DisplayConfig GtkUi::GetDisplayConfi
+     GdkRectangle geometry;
+     gdk_monitor_get_geometry(monitor, &geometry);
+     int monitor_scale = std::max(1, gdk_monitor_get_scale_factor(monitor));
+-    config.display_geometries.emplace_back(
++    config.display_geometries.emplace_back() = {
+         gfx::Rect(monitor_scale * geometry.x, monitor_scale * geometry.y,
+                   monitor_scale * geometry.width,
+                   monitor_scale * geometry.height),
+-        monitor_scale * font_scale);
++        static_cast<float>(monitor_scale * font_scale)};
+   }
+   return config;
+ }
+--- a/src/3rdparty/chromium/components/autofill/core/browser/contact_info_sync_util.cc
++++ b/src/3rdparty/chromium/components/autofill/core/browser/contact_info_sync_util.cc
+@@ -174,9 +174,9 @@ class ContactInfoProfileSetter {
+     CHECK(observations.empty());
+     for (const sync_pb::ContactInfoSpecifics::Observation& proto_observation :
+          proto_observations) {
+-      observations.emplace_back(proto_observation.type(),
++      observations.emplace_back() = {static_cast<unsigned char>(proto_observation.type()),
+                                 ProfileTokenQuality::FormSignatureHash(
+-                                    proto_observation.form_hash()));
++                                    proto_observation.form_hash())};
+     }
+   }
+ 
+--- a/src/3rdparty/chromium/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc
++++ b/src/3rdparty/chromium/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc
+@@ -553,11 +553,11 @@ ServerCvc AutofillWalletCvcStructDataFro
+   base::StringToInt64(wallet_credential_specifics.instrument_id(),
+                       &instrument_id);
+ 
+-  return ServerCvc(
++  return ServerCvc{
+       instrument_id, base::UTF8ToUTF16(wallet_credential_specifics.cvc()),
+       base::Time::UnixEpoch() +
+           base::Milliseconds(wallet_credential_specifics
+-                                 .last_updated_time_unix_epoch_millis()));
++                                 .last_updated_time_unix_epoch_millis())};
+ }
+ 
+ VirtualCardUsageData VirtualCardUsageDataFromUsageSpecifics(
+--- a/src/3rdparty/chromium/chrome/test/chromedriver/capabilities.cc
++++ b/src/3rdparty/chromium/chrome/test/chromedriver/capabilities.cc
+@@ -346,7 +346,7 @@ Status ParseMobileEmulation(const base::
+                         "'version' field of type string");
+         }
+ 
+-        brands.emplace_back() = {*brand, *version};
++        brands.emplace_back(*brand, *version);
+       }
+ 
+       client_hints.brands = std::move(brands);
+@@ -384,7 +384,7 @@ Status ParseMobileEmulation(const base::
+                         "a 'version' field of type string");
+         }
+ 
+-        full_version_list.emplace_back() = {*brand, *version};
++        full_version_list.emplace_back(*brand, *version);
+       }
+ 
+       client_hints.full_version_list = std::move(full_version_list);
diff --git a/srcpkgs/qt6-pdf/patches/0114-chromium-118-python-3.12-deprecated.patch b/srcpkgs/qt6-pdf/patches/0114-chromium-118-python-3.12-deprecated.patch
new file mode 100644
index 00000000000000..1b71a5a0ad023c
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0114-chromium-118-python-3.12-deprecated.patch
@@ -0,0 +1,98 @@
+--- a/src/3rdparty/chromium/base/write_build_date_header.py
++++ b/src/3rdparty/chromium/base/write_build_date_header.py
+@@ -17,7 +17,7 @@ def main():
+   args = argument_parser.parse_args()
+ 
+   date_val = int(args.timestamp)
+-  date = datetime.datetime.utcfromtimestamp(date_val)
++  date =  datetime.datetime.fromtimestamp(date_val, datetime.timezone.utc)
+   output = ('// Generated by //base/write_build_date_header.py\n'
+             '#ifndef BASE_GENERATED_BUILD_DATE_TIMESTAMP \n'
+             f'#define BASE_GENERATED_BUILD_DATE_TIMESTAMP {date_val}'
+--- a/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py
++++ b/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py
+@@ -40,6 +40,12 @@ class GoogleProtobufModuleImporter:
+         return filepath
+     return None
+ 
++  def load_source(name: str, path: str) -> types.ModuleType:
++    spec = importlib.util.spec_from_file_location(name, path)
++    module = importlib.util.module_from_spec(spec)
++    spec.loader.exec_module(module)
++    return module
++
+   def _module_exists(self, fullname):
+     return self._fullname_to_filepath(fullname) is not None
+ 
+--- a/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py
++++ b/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py
+@@ -18,7 +18,7 @@ class HTMLGenerationController(object):
+ 
+   def GetHTMLForInlineStylesheet(self, contents):
+     if self.current_module is None:
+-      if re.search('url\(.+\)', contents):
++      if re.search(r'url\(.+\)', contents):
+         raise Exception(
+             'Default HTMLGenerationController cannot handle inline style urls')
+       return contents
+--- a/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py
++++ b/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py
+@@ -4,4 +4,4 @@
+ 
+ 
+ def EscapeJSIfNeeded(js):
+-  return js.replace('</script>', '<\/script>')
++  return js.replace(r'</script>', r'<\/script>')
+--- a/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py
++++ b/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py
+@@ -293,6 +293,6 @@ class HTMLModuleParser():
+       html = ''
+     else:
+       if html.find('< /script>') != -1:
+-        raise Exception('Escape script tags with <\/script>')
++        raise Exception(r'Escape script tags with <\/script>')
+ 
+     return HTMLModuleParserResults(html)
+--- a/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py
++++ b/src/3rdparty/chromium/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py
+@@ -60,7 +60,7 @@ class ParsedStyleSheet(object):
+       return 'url(data:image/%s;base64,%s)' % (ext[1:], data.decode('utf-8'))
+ 
+     # I'm assuming we only have url()'s associated with images
+-    return re.sub('url\((?P<quote>"|\'|)(?P<url>[^"\'()]*)(?P=quote)\)',
++    return re.sub(r'url\((?P<quote>"|\'|)(?P<url>[^"\'()]*)(?P=quote)\)',
+                   InlineUrl, self.contents)
+ 
+   def AppendDirectlyDependentFilenamesTo(self, dependent_filenames):
+@@ -72,7 +72,7 @@ class ParsedStyleSheet(object):
+       raise Exception('@imports are not supported')
+ 
+     matches = re.findall(
+-        'url\((?:["|\']?)([^"\'()]*)(?:["|\']?)\)',
++        r'url\((?:["|\']?)([^"\'()]*)(?:["|\']?)\)',
+         self.contents)
+ 
+     def resolve_url(url):
+--- a/src/3rdparty/chromium/third_party/dawn/generator/generator_lib.py
++++ b/src/3rdparty/chromium/third_party/dawn/generator/generator_lib.py
+@@ -119,8 +119,8 @@ class _PreprocessingLoader(jinja2.BaseLo
+             source = self.preprocess(f.read())
+         return source, path, lambda: mtime == os.path.getmtime(path)
+ 
+-    blockstart = re.compile('{%-?\s*(if|elif|else|for|block|macro)[^}]*%}')
+-    blockend = re.compile('{%-?\s*(end(if|for|block|macro)|elif|else)[^}]*%}')
++    blockstart = re.compile(r'{%-?\s*(if|elif|else|for|block|macro)[^}]*%}')
++    blockend = re.compile(r'{%-?\s*(end(if|for|block|macro)|elif|else)[^}]*%}')
+ 
+     def preprocess(self, source):
+         lines = source.split('\n')
+--- a/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py
++++ b/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py
+@@ -16,6 +16,7 @@ import re
+ import subprocess
+ import sys
+ import traceback
++import types
+ 
+ 
+ class GoogleProtobufModuleImporter:
diff --git a/srcpkgs/qt6-pdf/patches/0116-chromium-118-workaround_clang_bug-structured_binding.patch b/srcpkgs/qt6-pdf/patches/0116-chromium-118-workaround_clang_bug-structured_binding.patch
new file mode 100644
index 00000000000000..38aa477193a5ab
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0116-chromium-118-workaround_clang_bug-structured_binding.patch
@@ -0,0 +1,25 @@
+--- a/src/3rdparty/chromium/media/base/cdm_promise_adapter.cc
++++ b/src/3rdparty/chromium/media/base/cdm_promise_adapter.cc
+@@ -94,7 +94,9 @@ void CdmPromiseAdapter::RejectPromise(ui
+ void CdmPromiseAdapter::Clear(ClearReason reason) {
+   // Reject all outstanding promises.
+   DCHECK(thread_checker_.CalledOnValidThread());
+-  for (auto& [promise_id, promise] : promises_) {
++  for (auto& [p_i, p_e] : promises_) {
++    auto& promise_id = p_i;
++    auto& promise = p_e;
+     TRACE_EVENT_NESTABLE_ASYNC_END1(
+         "media", "CdmPromise", TRACE_ID_WITH_SCOPE("CdmPromise", promise_id),
+         "status", "cleared");
+--- a/src/3rdparty/chromium/content/browser/service_worker/service_worker_context_wrapper.cc
++++ b/src/3rdparty/chromium/content/browser/service_worker/service_worker_context_wrapper.cc
+@@ -1409,7 +1409,8 @@ void ServiceWorkerContextWrapper::MaybeP
+     return;
+   }
+ 
+-  auto [document_url, key, callback] = std::move(*request);
++  auto [d_u, key, callback] = std::move(*request);
++  auto document_url = d_u;
+ 
+   DCHECK(document_url.is_valid());
+   TRACE_EVENT1("ServiceWorker",
diff --git a/srcpkgs/qt6-pdf/patches/0117-chromium-i686-vaapi-fpermissive.patch b/srcpkgs/qt6-pdf/patches/0117-chromium-i686-vaapi-fpermissive.patch
new file mode 100644
index 00000000000000..ad2102d650cc6d
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0117-chromium-i686-vaapi-fpermissive.patch
@@ -0,0 +1,23 @@
+--- a/src/3rdparty/chromium/media/gpu/vaapi/BUILD.gn
++++ b/src/3rdparty/chromium/media/gpu/vaapi/BUILD.gn
+@@ -13,6 +13,12 @@ import("//tools/generate_stubs/rules.gni
+ assert(is_linux || is_chromeos)
+ assert(use_vaapi)
+ 
++config("vaapi_permissive") {
++  if (target_cpu == "x86") {
++    cflags = [ "-fpermissive" ]
++  }
++}
++
+ generate_stubs("libva_stubs") {
+   extra_header = "va_stub_header.fragment"
+   sigs = [ "va.sigs" ]
+@@ -81,6 +87,7 @@ source_set("vaapi") {
+   configs += [
+     "//build/config/linux/libva",
+     "//third_party/libvpx:libvpx_config",
++    ":vaapi_permissive",
+   ]
+ 
+   deps = [
diff --git a/srcpkgs/qt6-pdf/patches/0117-chromium-musl-resolver.patch b/srcpkgs/qt6-pdf/patches/0117-chromium-musl-resolver.patch
deleted file mode 100644
index 12d1f81833cbad..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0117-chromium-musl-resolver.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-diff --git a/src/3rdparty/chromium/net/dns/dns_reloader.cc b/src/3rdparty/chromium/net/dns/dns_reloader.cc
-index 363eb14dc..3a86c12ee 100644
---- a/src/3rdparty/chromium/net/dns/dns_reloader.cc
-+++ b/src/3rdparty/chromium/net/dns/dns_reloader.cc
-@@ -8,7 +8,7 @@
- 
- // If we're not on a POSIX system, it's not even safe to try to include resolv.h
- // - there's not guarantee it exists at all. :(
--#if BUILDFLAG(IS_POSIX)
-+#if defined(__GLIBC__)
- 
- #include <resolv.h>
- 
-diff --git a/src/3rdparty/chromium/net/dns/host_resolver_system_task.cc b/src/3rdparty/chromium/net/dns/host_resolver_system_task.cc
-index d8142e8da..f2461b877 100644
---- a/src/3rdparty/chromium/net/dns/host_resolver_system_task.cc
-+++ b/src/3rdparty/chromium/net/dns/host_resolver_system_task.cc
-@@ -351,8 +351,9 @@ void HostResolverSystemTask::OnLookupComplete(const uint32_t attempt_number,
- }
- 
- void EnsureSystemHostResolverCallReady() {
-+#if defined(__GLIBC__)
-   EnsureDnsReloaderInit();
--#if BUILDFLAG(IS_WIN)
-+#elif BUILDFLAG(IS_WIN)
-   EnsureWinsockInit();
- #endif
- }
-@@ -434,7 +435,9 @@ int SystemHostResolverCall(const std::string& host,
-   // current process during that time.
-   base::ScopedBlockingCall scoped_blocking_call(FROM_HERE,
-                                                 base::BlockingType::WILL_BLOCK);
-+#if defined(__GLIBC__)
-   DnsReloaderMaybeReload();
-+#endif
- 
-   auto [ai, err, os_error] = AddressInfo::Get(host, hints, nullptr, network);
-   bool should_retry = false;
-diff --git a/src/3rdparty/chromium/net/dns/public/scoped_res_state.cc b/src/3rdparty/chromium/net/dns/public/scoped_res_state.cc
-index 2743697bf..36dc8adbf 100644
---- a/src/3rdparty/chromium/net/dns/public/scoped_res_state.cc
-+++ b/src/3rdparty/chromium/net/dns/public/scoped_res_state.cc
-@@ -13,7 +13,7 @@
- namespace net {
- 
- ScopedResState::ScopedResState() {
--#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_FUCHSIA)
-+#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_FUCHSIA) || (BUILDFLAG(IS_LINUX) && !defined(__GLIBC__))
-   // Note: res_ninit in glibc always returns 0 and sets RES_INIT.
-   // res_init behaves the same way.
-   memset(&_res, 0, sizeof(_res));
-@@ -25,7 +25,7 @@ ScopedResState::ScopedResState() {
- }
- 
- ScopedResState::~ScopedResState() {
--#if !BUILDFLAG(IS_OPENBSD) && !BUILDFLAG(IS_FUCHSIA)
-+#if !BUILDFLAG(IS_OPENBSD) && !BUILDFLAG(IS_FUCHSIA) && !(BUILDFLAG(IS_LINUX) && !defined(__GLIBC__))
- 
-   // Prefer res_ndestroy where available.
- #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD)
diff --git a/srcpkgs/qt6-pdf/patches/0105-chromium-revert-drop-of-system-java.patch b/srcpkgs/qt6-pdf/patches/0118-chromium-revert-drop-of-system-java.patch
similarity index 76%
rename from srcpkgs/qt6-pdf/patches/0105-chromium-revert-drop-of-system-java.patch
rename to srcpkgs/qt6-pdf/patches/0118-chromium-revert-drop-of-system-java.patch
index d6abf7adcabcd6..44f3aa8fae5e94 100644
--- a/srcpkgs/qt6-pdf/patches/0105-chromium-revert-drop-of-system-java.patch
+++ b/srcpkgs/qt6-pdf/patches/0118-chromium-revert-drop-of-system-java.patch
@@ -1,6 +1,6 @@
 This was dropped for some reason in 6951c37cecd05979b232a39e5c10e6346a0f74ef
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/closure_compiler/compiler.py
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/closure_compiler/compiler.py
+--- a/src/3rdparty/chromium/third_party/closure_compiler/compiler.py
++++ b/src/3rdparty/chromium/third_party/closure_compiler/compiler.py
 @@ -13,8 +13,9 @@ import subprocess
  
  
diff --git a/srcpkgs/qt6-pdf/patches/0119-chromium-system-nodejs.patch b/srcpkgs/qt6-pdf/patches/0119-chromium-system-nodejs.patch
new file mode 100644
index 00000000000000..224d539e6f59ef
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0119-chromium-system-nodejs.patch
@@ -0,0 +1,20 @@
+--- a/src/3rdparty/chromium/third_party/node/node.py
++++ b/src/3rdparty/chromium/third_party/node/node.py
+@@ -32,11 +32,12 @@ def GetBinaryPath():
+ 
+   darwin_name = ('node-darwin-arm64' if platform.machine() == 'arm64' else
+                  'node-darwin-x64')
+-  return os_path.join(os_path.dirname(__file__), *{
+-    'Darwin': ('mac', darwin_name, 'bin', 'node'),
+-    'Linux': ('linux', 'node-linux-x64', 'bin', 'node'),
+-    'Windows': ('win', 'node.exe'),
+-  }[platform.system()])
++  #return os_path.join(os_path.dirname(__file__), *{
++  #  'Darwin': ('mac', darwin_name, 'bin', 'node'),
++  #  'Linux': ('linux', 'node-linux-x64', 'bin', 'node'),
++  #  'Windows': ('win', 'node.exe'),
++  #}[platform.system()])
++  return "/usr/bin/node"
+ 
+ 
+ def RunNode(cmd_parts, stdout=None):
diff --git a/srcpkgs/qt6-pdf/patches/0107-chromium-cross-build.patch b/srcpkgs/qt6-pdf/patches/0120-cross-build.patch
similarity index 72%
rename from srcpkgs/qt6-pdf/patches/0107-chromium-cross-build.patch
rename to srcpkgs/qt6-pdf/patches/0120-cross-build.patch
index 7fbfabcd79b79e..c533e500a71902 100644
--- a/srcpkgs/qt6-pdf/patches/0107-chromium-cross-build.patch
+++ b/srcpkgs/qt6-pdf/patches/0120-cross-build.patch
@@ -1,6 +1,6 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/build/config/compiler/BUILD.gn
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/build/config/compiler/BUILD.gn
-@@ -58,6 +58,10 @@ if (!is_clang) {
+--- a/src/3rdparty/chromium/build/config/compiler/BUILD.gn
++++ b/src/3rdparty/chromium/build/config/compiler/BUILD.gn
+@@ -59,6 +59,10 @@ if (!is_clang) {
  }
  
  declare_args() {
@@ -11,7 +11,7 @@
    # Normally, Android builds are lightly optimized, even for debug builds, to
    # keep binary size down. Setting this flag to true disables such optimization
    android_full_debug = false
-@@ -1003,8 +1003,13 @@
+@@ -1190,8 +1194,13 @@ config("compiler_cpu_abi") {
      } else if (current_cpu == "arm64") {
        if (is_clang && !is_android && !is_nacl && !is_fuchsia &&
            !(is_chromeos_lacros && is_chromeos_device)) {
@@ -25,10 +25,10 @@
 +          ldflags += [ "--target=aarch64-linux-gnu" ]
 +        }
        }
-       if (is_android) {
-         # Outline atomics crash on Exynos 9810. http://crbug.com/1272795
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/build/toolchain/linux/unbundle/BUILD.gn
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/build/toolchain/linux/unbundle/BUILD.gn
+     } else if (current_cpu == "mipsel" && !is_nacl) {
+       ldflags += [ "-Wl,--hash-style=sysv" ]
+--- a/src/3rdparty/chromium/build/toolchain/linux/unbundle/BUILD.gn
++++ b/src/3rdparty/chromium/build/toolchain/linux/unbundle/BUILD.gn
 @@ -39,3 +39,22 @@ gcc_toolchain("host") {
      current_os = current_os
    }
@@ -52,8 +52,8 @@
 +    v8_current_cpu = target_cpu
 +  }
 +}
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/build/config/linux/pkg_config.gni
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/build/config/linux/pkg_config.gni
+--- a/src/3rdparty/chromium/build/config/linux/pkg_config.gni
++++ b/src/3rdparty/chromium/build/config/linux/pkg_config.gni
 @@ -92,7 +92,7 @@ template("pkg_config") {
    assert(defined(invoker.packages),
           "Variable |packages| must be defined to be a list in pkg_config.")
diff --git a/srcpkgs/qt6-pdf/patches/0121-fc-cache-version.patch b/srcpkgs/qt6-pdf/patches/0121-fc-cache-version.patch
new file mode 100644
index 00000000000000..d8226f0b063226
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0121-fc-cache-version.patch
@@ -0,0 +1,13 @@
+instead of hardcoding the version, use the defined macro.
+--
+--- a/src/3rdparty/chromium/third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc
++++ b/src/3rdparty/chromium/third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc
+@@ -56,7 +56,7 @@ int main() {
+   FcFini();
+ 
+   // Check existence of intended fontconfig cache file.
+-  auto cache = fontconfig_caches + "/" + kCacheKey + "-le64.cache-9";
++  auto cache = fontconfig_caches + "/" + kCacheKey + "-le64.cache-" + FC_CACHE_VERSION;
+   bool cache_exists = access(cache.c_str(), F_OK) == 0;
+   return !cache_exists;
+ }
diff --git a/srcpkgs/qt6-pdf/patches/0109-chromium-aarch64-musl-memory-tagging.patch b/srcpkgs/qt6-pdf/patches/0122-fix-aarch64-musl-memory-tagging-macros.patch
similarity index 73%
rename from srcpkgs/qt6-pdf/patches/0109-chromium-aarch64-musl-memory-tagging.patch
rename to srcpkgs/qt6-pdf/patches/0122-fix-aarch64-musl-memory-tagging-macros.patch
index 0ff2a2a51aaaa8..f2d6541b26f4fc 100644
--- a/srcpkgs/qt6-pdf/patches/0109-chromium-aarch64-musl-memory-tagging.patch
+++ b/srcpkgs/qt6-pdf/patches/0122-fix-aarch64-musl-memory-tagging-macros.patch
@@ -1,6 +1,6 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/allocator/partition_allocator/tagging.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/allocator/partition_allocator/tagging.cc
-@@ -28,13 +28,25 @@
+--- a/src/3rdparty/chromium/base/allocator/partition_allocator/tagging.cc
++++ b/src/3rdparty/chromium/base/allocator/partition_allocator/tagging.cc
+@@ -29,13 +29,25 @@
  #endif
  #endif
  
@@ -25,5 +25,5 @@
 +#endif
 +#ifndef PR_MTE_TAG_MASK
  #define PR_MTE_TAG_MASK (0xffffUL << PR_MTE_TAG_SHIFT)
- #endif
+ #define HWCAP2_MTE (1 << 18)
  #endif
diff --git a/srcpkgs/qt6-pdf/patches/0123-fix-argument_spec-isnan-isinf.patch b/srcpkgs/qt6-pdf/patches/0123-fix-argument_spec-isnan-isinf.patch
new file mode 100644
index 00000000000000..d33de24fafb8e9
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0123-fix-argument_spec-isnan-isinf.patch
@@ -0,0 +1,11 @@
+--- a/src/3rdparty/chromium/extensions/renderer/bindings/argument_spec.cc
++++ b/src/3rdparty/chromium/extensions/renderer/bindings/argument_spec.cc
+@@ -2,6 +2,8 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+ 
++#include <cmath>
++
+ #include "extensions/renderer/bindings/argument_spec.h"
+ 
+ #include <cmath>
diff --git a/srcpkgs/qt6-pdf/patches/0124-fix-constexpr-narrowing.patch b/srcpkgs/qt6-pdf/patches/0124-fix-constexpr-narrowing.patch
new file mode 100644
index 00000000000000..f3e6cf051465ac
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0124-fix-constexpr-narrowing.patch
@@ -0,0 +1,21 @@
+--- a/src/3rdparty/chromium/third_party/blink/renderer/platform/media/web_media_player_impl.cc
++++ b/src/3rdparty/chromium/third_party/blink/renderer/platform/media/web_media_player_impl.cc
+@@ -3732,15 +3732,15 @@ void WebMediaPlayerImpl::WriteSplitHisto
+     const T&... values) {
+   std::string strkey = std::string(key);
+ 
+-  if constexpr (Flags & kEncrypted) {
++  if constexpr (Flags & kEncrypted != 0) {
+     if (is_encrypted_)
+       UmaFunction(strkey + ".EME", values...);
+   }
+ 
+-  if constexpr (Flags & kTotal)
++  if constexpr (Flags & kTotal != 0)
+     UmaFunction(strkey + ".All", values...);
+ 
+-  if constexpr (Flags & kPlaybackType) {
++  if constexpr (Flags & kPlaybackType != 0) {
+     auto demuxer_type = GetDemuxerType();
+     if (!demuxer_type.has_value())
+       return;
diff --git a/srcpkgs/qt6-pdf/patches/0125-fix-dawn-platform.patch b/srcpkgs/qt6-pdf/patches/0125-fix-dawn-platform.patch
new file mode 100644
index 00000000000000..85e427bbe68255
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0125-fix-dawn-platform.patch
@@ -0,0 +1,55 @@
+From f815e833c946a59620a2ca9df37a1da746f61460 Mon Sep 17 00:00:00 2001
+From: q66 <daniel@octaforge.org>
+Date: Sat, 1 Oct 2022 00:21:09 +0000
+Subject: [PATCH] fix dawn build for ppc64
+
+---
+ third_party/dawn/src/dawn/common/Assert.cpp |  4 ++--
+ third_party/dawn/src/dawn/common/Platform.h | 10 +++++-----
+ 2 files changed, 7 insertions(+), 7 deletions(-)
+
+--- a/src/3rdparty/chromium/third_party/dawn/src/dawn/common/Assert.cpp
++++ b/src/3rdparty/chromium/third_party/dawn/src/dawn/common/Assert.cpp
+@@ -39,9 +39,9 @@ void BreakPoint() {
+     __asm__ __volatile__("ebreak");
+ #elif DAWN_PLATFORM_IS(MIPS)
+     __asm__ __volatile__("break");
+-#elif DAWN_PLATFORM_IS(S390) || DAWN_PLATFORM_IS_(S390X)
++#elif DAWN_PLATFORM_IS(S390) || DAWN_PLATFORM_IS(S390X)
+     __asm__ __volatile__(".word 0x0001");
+-#elif DAWN_PLATFORM_IS(PPC) || DAWN_PLATFORM_IS_(PPC64)
++#elif DAWN_PLATFORM_IS(PPC) || DAWN_PLATFORM_IS(PPC64)
+     __asm__ __volatile__("twge 2,2");
+ #else
+ #error "Unsupported platform"
+--- a/src/3rdparty/chromium/third_party/dawn/src/dawn/common/Platform.h
++++ b/src/3rdparty/chromium/third_party/dawn/src/dawn/common/Platform.h
+@@ -140,15 +140,15 @@
+ #define DAWN_PLATFORM_IS_MIPS64 1
+ #endif
+ 
+-#elif defiend(__s390__)
++#elif defined(__s390__)
+ #define DAWN_PLATFORM_IS_S390 1
+-#elif defiend(__s390x__)
++#elif defined(__s390x__)
+ #define DAWN_PLATFORM_IS_S390X 1
+ 
+-#elif defined(__PPC__)
+-#define DAWN_PLATFORM_IS_PPC 1
+ #elif defined(__PPC64__)
+ #define DAWN_PLATFORM_IS_PPC64 1
++#elif defined(__PPC__)
++#define DAWN_PLATFORM_IS_PPC 1
+ 
+ #else
+ #error "Unsupported platform."
+@@ -166,7 +166,7 @@
+ static_assert(sizeof(sizeof(char)) == 8, "Expect sizeof(size_t) == 8");
+ #elif defined(DAWN_PLATFORM_IS_I386) || defined(DAWN_PLATFORM_IS_ARM32) ||   \
+     defined(DAWN_PLATFORM_IS_RISCV32) || defined(DAWN_PLATFORM_IS_MIPS32) || \
+-    defined(DAWN_PLATFORM_IS_S390) || defined(DAWN_PLATFORM_IS_PPC32) ||     \
++    defined(DAWN_PLATFORM_IS_S390) || defined(DAWN_PLATFORM_IS_PPC) ||     \
+     defined(DAWN_PLATFORM_IS_EMSCRIPTEN) || defined(DAWN_PLATFORM_IS_LOONGARCH32)
+ #define DAWN_PLATFORM_IS_32_BIT 1
+ static_assert(sizeof(sizeof(char)) == 4, "Expect sizeof(size_t) == 4");
diff --git a/srcpkgs/qt6-pdf/patches/0110-chromium-fix-missing-TEMP_FAILURE_RETRY-macro.patch b/srcpkgs/qt6-pdf/patches/0127-fix-missing-TEMP_FAILURE_RETRY-macro.patch
similarity index 78%
rename from srcpkgs/qt6-pdf/patches/0110-chromium-fix-missing-TEMP_FAILURE_RETRY-macro.patch
rename to srcpkgs/qt6-pdf/patches/0127-fix-missing-TEMP_FAILURE_RETRY-macro.patch
index 5558c54cf80211..6c93991a5b099f 100644
--- a/srcpkgs/qt6-pdf/patches/0110-chromium-fix-missing-TEMP_FAILURE_RETRY-macro.patch
+++ b/srcpkgs/qt6-pdf/patches/0127-fix-missing-TEMP_FAILURE_RETRY-macro.patch
@@ -1,7 +1,7 @@
 This macro is defined in glibc, but not musl.
 
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/sandbox/linux/suid/process_util.h
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/sandbox/linux/suid/process_util.h
+--- a/src/3rdparty/chromium/sandbox/linux/suid/process_util.h
++++ b/src/3rdparty/chromium/sandbox/linux/suid/process_util.h
 @@ -12,6 +12,16 @@
  #include <stdint.h>
  #include <sys/types.h>
diff --git a/srcpkgs/qt6-pdf/patches/0128-fix-missing-cstdint-include-musl.patch b/srcpkgs/qt6-pdf/patches/0128-fix-missing-cstdint-include-musl.patch
new file mode 100644
index 00000000000000..ce545be67d297d
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0128-fix-missing-cstdint-include-musl.patch
@@ -0,0 +1,10 @@
+--- a/src/3rdparty/chromium/net/third_party/quiche/src/quiche/http2/adapter/window_manager.h
++++ b/src/3rdparty/chromium/net/third_party/quiche/src/quiche/http2/adapter/window_manager.h
+@@ -4,6 +4,7 @@
+ #include <stddef.h>
+ #include <stdint.h>
+ 
++#include <cstdint>
+ #include <functional>
+ 
+ #include "quiche/common/platform/api/quiche_export.h"
diff --git a/srcpkgs/qt6-pdf/patches/0129-chromium-sandbox-shed_getparam.patch b/srcpkgs/qt6-pdf/patches/0129-chromium-sandbox-shed_getparam.patch
deleted file mode 100644
index 94260d5d62eb17..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0129-chromium-sandbox-shed_getparam.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Allow SYS_sched_getparam and SYS_sched_getscheduler
-musl uses them for pthread_getschedparam()
-
---- a/src/3rdparty/chromium/sandbox/policy/linux/bpf_renderer_policy_linux.cc
-+++ b/src/3rdparty/chromium/sandbox/policy/linux/bpf_renderer_policy_linux.cc
-@@ -94,6 +94,11 @@
-     case __NR_pwrite64:
-     case __NR_sched_get_priority_max:
-     case __NR_sched_get_priority_min:
-+#ifndef __GLIBC__
-+    case __NR_sched_getparam:
-+    case __NR_sched_getscheduler:
-+    case __NR_sched_setscheduler:
-+#endif
-     case __NR_sysinfo:
-     case __NR_times:
-     case __NR_uname:
diff --git a/srcpkgs/qt6-pdf/patches/0112-chromium-unistd.h.patch b/srcpkgs/qt6-pdf/patches/0129-fix-musl-missing-unistd_h-include.patch
similarity index 94%
rename from srcpkgs/qt6-pdf/patches/0112-chromium-unistd.h.patch
rename to srcpkgs/qt6-pdf/patches/0129-fix-musl-missing-unistd_h-include.patch
index bb242a808aceaa..327874276f13e3 100644
--- a/srcpkgs/qt6-pdf/patches/0112-chromium-unistd.h.patch
+++ b/srcpkgs/qt6-pdf/patches/0129-fix-musl-missing-unistd_h-include.patch
@@ -1,6 +1,6 @@
 --- a/src/3rdparty/chromium/sandbox/linux/services/credentials.h
 +++ b/src/3rdparty/chromium/sandbox/linux/services/credentials.h
-@@ -13,6 +13,7 @@
+@@ -15,6 +15,7 @@
  
  #include <string>
  #include <vector>
diff --git a/srcpkgs/qt6-pdf/patches/0116-chromium-musl-get-thread-name.patch b/srcpkgs/qt6-pdf/patches/0130-fix-perfetto-GetThreadName-musl.patch
similarity index 73%
rename from srcpkgs/qt6-pdf/patches/0116-chromium-musl-get-thread-name.patch
rename to srcpkgs/qt6-pdf/patches/0130-fix-perfetto-GetThreadName-musl.patch
index d485385cbb629a..47dfb87f147ca7 100644
--- a/srcpkgs/qt6-pdf/patches/0116-chromium-musl-get-thread-name.patch
+++ b/srcpkgs/qt6-pdf/patches/0130-fix-perfetto-GetThreadName-musl.patch
@@ -1,5 +1,5 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/perfetto/include/perfetto/ext/base/thread_utils.h
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/perfetto/include/perfetto/ext/base/thread_utils.h
+--- a/src/3rdparty/chromium/third_party/perfetto/include/perfetto/ext/base/thread_utils.h
++++ b/src/3rdparty/chromium/third_party/perfetto/include/perfetto/ext/base/thread_utils.h
 @@ -30,7 +30,8 @@
  #include <algorithm>
  #endif
diff --git a/srcpkgs/qt6-pdf/patches/0131-fix-swiftshader-llvm-musl-config.patch b/srcpkgs/qt6-pdf/patches/0131-fix-swiftshader-llvm-musl-config.patch
new file mode 100644
index 00000000000000..e69de29bb2d1d6
diff --git a/srcpkgs/qt6-pdf/patches/0120-chromium-libc-malloc.patch b/srcpkgs/qt6-pdf/patches/0132-libc_malloc.patch
similarity index 66%
rename from srcpkgs/qt6-pdf/patches/0120-chromium-libc-malloc.patch
rename to srcpkgs/qt6-pdf/patches/0132-libc_malloc.patch
index fa32830760cdb2..0352361083d699 100644
--- a/srcpkgs/qt6-pdf/patches/0120-chromium-libc-malloc.patch
+++ b/srcpkgs/qt6-pdf/patches/0132-libc_malloc.patch
@@ -1,5 +1,5 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/process/memory_linux.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/process/memory_linux.cc
+--- a/src/3rdparty/chromium/base/process/memory_linux.cc
++++ b/src/3rdparty/chromium/base/process/memory_linux.cc
 @@ -18,6 +18,13 @@
  #include "base/threading/thread_restrictions.h"
  #include "build/build_config.h"
@@ -14,8 +14,8 @@
  namespace base {
  
  namespace {
-@@ -112,7 +119,7 @@ bool UncheckedMalloc(size_t size, void**
-     defined(TOOLKIT_QT) || !defined(LIBC_GLIBC)
+@@ -111,7 +118,7 @@ bool UncheckedMalloc(size_t size, void**
+ #elif defined(MEMORY_TOOL_REPLACES_ALLOCATOR) || !defined(LIBC_GLIBC) || defined(TOOLKIT_QT)
    *result = malloc(size);
  #elif defined(LIBC_GLIBC)
 -  *result = __libc_malloc(size);
@@ -23,7 +23,7 @@
  #endif
    return *result != nullptr;
  }
-@@ -123,7 +130,7 @@ void UncheckedFree(void* ptr) {
+@@ -122,7 +129,7 @@ void UncheckedFree(void* ptr) {
  #elif defined(MEMORY_TOOL_REPLACES_ALLOCATOR) || !defined(LIBC_GLIBC) || defined(TOOLKIT_QT)
    free(ptr);
  #elif defined(LIBC_GLIBC)
diff --git a/srcpkgs/qt6-pdf/patches/0133-musl-no-execinfo.patch b/srcpkgs/qt6-pdf/patches/0133-musl-no-execinfo.patch
new file mode 100644
index 00000000000000..3fa2dab93da01c
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0133-musl-no-execinfo.patch
@@ -0,0 +1,68 @@
+Source: https://git.alpinelinux.org/aports/plain/community/chromium/no-execinfo.patch
+musl does not have execinfo.h, and hence no implementation of
+. backtrace()
+. backtrace_symbols()
+for discussion about this, see https://www.openwall.com/lists/musl/2021/07/16/1
+--
+--- a/src/3rdparty/chromium/v8/src/codegen/external-reference-table.cc
++++ b/src/3rdparty/chromium/v8/src/codegen/external-reference-table.cc
+@@ -12,7 +12,9 @@
+ 
+ #if defined(DEBUG) && defined(V8_OS_LINUX) && !defined(V8_OS_ANDROID)
+ #define SYMBOLIZE_FUNCTION
++#if defined(__GLIBC__)
+ #include <execinfo.h>
++#endif
+ 
+ #include <vector>
+ 
+@@ -118,7 +120,7 @@ void ExternalReferenceTable::Init(Isolat
+ }
+ 
+ const char* ExternalReferenceTable::ResolveSymbol(void* address) {
+-#ifdef SYMBOLIZE_FUNCTION
++#if defined(SYMBOLIZE_FUNCTION) && defined(__GLIBC__)
+   char** names = backtrace_symbols(&address, 1);
+   const char* name = names[0];
+   // The array of names is malloc'ed. However, each name string is static
+--- a/src/3rdparty/chromium/base/debug/stack_trace.cc
++++ b/src/3rdparty/chromium/base/debug/stack_trace.cc
+@@ -273,7 +273,9 @@ void StackTrace::Print() const {
+ }
+ 
+ void StackTrace::OutputToStream(std::ostream* os) const {
++#if defined(__GLIBC__) && !defined(_AIX)
+   OutputToStreamWithPrefix(os, nullptr);
++#endif
+ }
+ 
+ std::string StackTrace::ToString() const {
+@@ -281,7 +283,7 @@ std::string StackTrace::ToString() const
+ }
+ 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();
+--- a/src/3rdparty/chromium/base/debug/stack_trace_unittest.cc
++++ b/src/3rdparty/chromium/base/debug/stack_trace_unittest.cc
+@@ -33,7 +33,7 @@ typedef MultiProcessTest StackTraceTest;
+ typedef testing::Test StackTraceTest;
+ #endif
+ 
+-#if !defined(__UCLIBC__) && !defined(_AIX)
++#if !defined(__UCLIBC__) && !defined(_AIX) && defined(__GLIBC__)
+ // StackTrace::OutputToStream() is not implemented under uclibc, nor AIX.
+ // See https://crbug.com/706728
+ 
+@@ -156,7 +156,7 @@ TEST_F(StackTraceTest, DebugOutputToStre
+ 
+ #endif  // !defined(__UCLIBC__) && !defined(_AIX)
+ 
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID)
++#if (BUILDFLAG(IS_POSIX) && defined(__GLIBC__)) && !BUILDFLAG(IS_ANDROID)
+ #if !BUILDFLAG(IS_IOS)
+ static char* newArray() {
+   // Clang warns about the mismatched new[]/delete if they occur in the same
diff --git a/srcpkgs/qt6-pdf/patches/0302-chromium-no-mallinfo.patch b/srcpkgs/qt6-pdf/patches/0134-musl-no-mallinfo.patch
similarity index 50%
rename from srcpkgs/qt6-pdf/patches/0302-chromium-no-mallinfo.patch
rename to srcpkgs/qt6-pdf/patches/0134-musl-no-mallinfo.patch
index 9f8d4a15c28e70..3ec083a830f49c 100644
--- a/srcpkgs/qt6-pdf/patches/0302-chromium-no-mallinfo.patch
+++ b/srcpkgs/qt6-pdf/patches/0134-musl-no-mallinfo.patch
@@ -1,76 +1,85 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/process/process_metrics_posix.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/process/process_metrics_posix.cc
-@@ -105,7 +105,8 @@ void IncreaseFdLimitTo(unsigned int max_
+Source: https://git.alpinelinux.org/aports/plain/community/chromium/no-mallinfo.patch
+musl does not implement mallinfo()/mallinfo2()
+(or rather, malloc-ng, musl's allocator, doesn't)
+--
+--- a/src/3rdparty/chromium/base/trace_event/malloc_dump_provider.cc
++++ b/src/3rdparty/chromium/base/trace_event/malloc_dump_provider.cc
+@@ -199,7 +199,6 @@ void ReportMallinfoStats(ProcessMemoryDu
+ #define MALLINFO2_FOUND_IN_LIBC
+   struct mallinfo2 info = mallinfo2();
+ #endif
+-#endif  // defined(__GLIBC__) && defined(__GLIBC_PREREQ)
+ #if !defined(MALLINFO2_FOUND_IN_LIBC)
+   struct mallinfo info = mallinfo();
+ #endif
+@@ -221,6 +220,7 @@ void ReportMallinfoStats(ProcessMemoryDu
+                               MemoryAllocatorDump::kUnitsBytes,
+                               total_allocated_size);
+   }
++#endif  // defined(__GLIBC__) && defined(__GLIBC_PREREQ)
+ }
+ #endif
+ 
+@@ -359,7 +359,7 @@ bool MallocDumpProvider::OnMemoryDump(co
+                      &allocated_objects_count);
+ #elif BUILDFLAG(IS_FUCHSIA)
+ // TODO(fuchsia): Port, see https://crbug.com/706592.
+-#else
++#elif defined(__GLIBC__)
+   ReportMallinfoStats(/*pmd=*/nullptr, &total_virtual_size, &resident_size,
+                       &allocated_objects_size, &allocated_objects_count);
+ #endif
+--- a/src/3rdparty/chromium/base/process/process_metrics_posix.cc
++++ b/src/3rdparty/chromium/base/process/process_metrics_posix.cc
+@@ -106,7 +106,7 @@ void IncreaseFdLimitTo(unsigned int max_
  
  #endif  // !BUILDFLAG(IS_FUCHSIA)
  
 -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
-+#if (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || \
-+	BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
  namespace {
  
  size_t GetMallocUsageMallinfo() {
-@@ -123,17 +124,18 @@ size_t GetMallocUsageMallinfo() {
+@@ -124,7 +124,7 @@ size_t GetMallocUsageMallinfo() {
  }
  
  }  // namespace
 -#endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ||
--        // BUILDFLAG(IS_ANDROID)
-+#endif  // (BUILDFLAG(IS_LINUX) && defined(__GLIBC__) ||
-+	// BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#endif  // (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS) ||
+         // BUILDFLAG(IS_ANDROID)
  
  size_t ProcessMetrics::GetMallocUsage() {
- #if BUILDFLAG(IS_APPLE)
+@@ -132,9 +132,9 @@ size_t ProcessMetrics::GetMallocUsage()
    malloc_statistics_t stats = {0};
    malloc_zone_statistics(nullptr, &stats);
    return stats.size_in_use;
 -#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
-+#elif (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || \
-+	BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
    return GetMallocUsageMallinfo();
 -#elif BUILDFLAG(IS_FUCHSIA)
-+#elif BUILDFLAG(IS_FUCHSIA) || (BUILDFLAG(IS_LINUX) && !defined(__GLIBC__))
++#else
    // TODO(fuchsia): Not currently exposed. https://crbug.com/735087.
    return 0;
  #endif
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/trace_event/malloc_dump_provider.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/trace_event/malloc_dump_provider.cc
-@@ -185,7 +185,6 @@
- #define MALLINFO2_FOUND_IN_LIBC
-   struct mallinfo2 info = mallinfo2();
- #endif
--#endif  // defined(__GLIBC__) && defined(__GLIBC_PREREQ)
- #if !defined(MALLINFO2_FOUND_IN_LIBC)
-   struct mallinfo info = mallinfo();
- #endif
-@@ -205,6 +204,7 @@
-     sys_alloc_dump->AddScalar(MemoryAllocatorDump::kNameSize,
-                               MemoryAllocatorDump::kUnitsBytes, info.uordblks);
-   }
-+#endif  // defined(__GLIBC__) && defined(__GLIBC_PREREQ)
- }
- #endif
- 
-@@ -339,7 +340,7 @@
-                      &allocated_objects_count);
- #elif BUILDFLAG(IS_FUCHSIA)
- // TODO(fuchsia): Port, see https://crbug.com/706592.
--#else
-+#elif defined(__GLIBC__)
-   ReportMallinfoStats(/*pmd=*/nullptr, &total_virtual_size, &resident_size,
-                       &allocated_objects_size, &allocated_objects_count);
- #endif
-musl does not implement mallinfo()/mallinfo2()
-(or rather, malloc-ng, musl's allocator, doesn't)
---
 --- a/src/3rdparty/chromium/base/allocator/partition_allocator/shim/allocator_shim_default_dispatch_to_partition_alloc.cc
 +++ b/src/3rdparty/chromium/base/allocator/partition_allocator/shim/allocator_shim_default_dispatch_to_partition_alloc.cc
-@@ -717,7 +717,7 @@
+@@ -736,7 +736,7 @@ SHIM_ALWAYS_EXPORT int mallopt(int cmd,
  
  #endif  // !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_ANDROID)
  
 -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
-+#if defined(__GLIBC__)
++#if 0
  SHIM_ALWAYS_EXPORT struct mallinfo mallinfo(void) __THROW {
-   base::SimplePartitionStatsDumper allocator_dumper;
+   partition_alloc::SimplePartitionStatsDumper allocator_dumper;
    Allocator()->DumpStats("malloc", true, &allocator_dumper);
+--- a/src/3rdparty/chromium/base/allocator/partition_allocator/shim/allocator_shim_default_dispatch_to_partition_alloc_unittest.cc
++++ b/src/3rdparty/chromium/base/allocator/partition_allocator/shim/allocator_shim_default_dispatch_to_partition_alloc_unittest.cc
+@@ -24,7 +24,7 @@ namespace allocator_shim::internal {
+ #if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC)
+ 
+ // Platforms on which we override weak libc symbols.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS)
+ 
+ PA_NOINLINE void FreeForTest(void* data) {
+   free(data);
diff --git a/srcpkgs/qt6-pdf/patches/0135-musl-partition-atfork.patch b/srcpkgs/qt6-pdf/patches/0135-musl-partition-atfork.patch
new file mode 100644
index 00000000000000..1d838142146c78
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0135-musl-partition-atfork.patch
@@ -0,0 +1,11 @@
+--- a/src/3rdparty/chromium/base/allocator/partition_allocator/partition_root.cc
++++ b/src/3rdparty/chromium/base/allocator/partition_allocator/partition_root.cc
+@@ -281,7 +281,7 @@ void PartitionAllocMallocInitOnce() {
+     return;
+   }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS)
+   // When fork() is called, only the current thread continues to execute in the
+   // child process. If the lock is held, but *not* by this thread when fork() is
+   // called, we have a deadlock.
diff --git a/srcpkgs/qt6-pdf/patches/0122-chromium-condition_var.patch b/srcpkgs/qt6-pdf/patches/0136-musl-v8-monotonic-pthread-cont_timedwait.patch
similarity index 82%
rename from srcpkgs/qt6-pdf/patches/0122-chromium-condition_var.patch
rename to srcpkgs/qt6-pdf/patches/0136-musl-v8-monotonic-pthread-cont_timedwait.patch
index 6c41312e516b3a..1dc8bc4d3d17ff 100644
--- a/srcpkgs/qt6-pdf/patches/0122-chromium-condition_var.patch
+++ b/srcpkgs/qt6-pdf/patches/0136-musl-v8-monotonic-pthread-cont_timedwait.patch
@@ -1,7 +1,7 @@
 Use monotonic clock for pthread_cond_timedwait with musl too.
 
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/v8/src/base/platform/condition-variable.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/v8/src/base/platform/condition-variable.cc
+--- a/src/3rdparty/chromium/v8/src/base/platform/condition-variable.cc
++++ b/src/3rdparty/chromium/v8/src/base/platform/condition-variable.cc
 @@ -20,7 +20,7 @@ namespace base {
  
  ConditionVariable::ConditionVariable() {
diff --git a/srcpkgs/qt6-pdf/patches/0123-chromium-musl-no-getcontext.patch b/srcpkgs/qt6-pdf/patches/0137-no-getcontext.patch
similarity index 72%
rename from srcpkgs/qt6-pdf/patches/0123-chromium-musl-no-getcontext.patch
rename to srcpkgs/qt6-pdf/patches/0137-no-getcontext.patch
index 46522ee0a066d7..fc419db67de0b9 100644
--- a/srcpkgs/qt6-pdf/patches/0123-chromium-musl-no-getcontext.patch
+++ b/srcpkgs/qt6-pdf/patches/0137-no-getcontext.patch
@@ -1,5 +1,5 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
+--- a/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
++++ b/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
 @@ -490,7 +490,9 @@ bool ExceptionHandler::SimulateSignalDel
    siginfo.si_code = SI_USER;
    siginfo.si_pid = getpid();
diff --git a/srcpkgs/qt6-pdf/patches/0138-no-mte.patch b/srcpkgs/qt6-pdf/patches/0138-no-mte.patch
new file mode 100644
index 00000000000000..074a518d6cf926
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0138-no-mte.patch
@@ -0,0 +1,11 @@
+--- a/src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_config.h
++++ b/src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_config.h
+@@ -153,7 +153,7 @@ static_assert(sizeof(void*) != 8, "");
+    defined(ARCH_CPU_LITTLE_ENDIAN))
+ 
+ #define PA_CONFIG_HAS_MEMORY_TAGGING()              \
+-  (defined(ARCH_CPU_ARM64) && defined(__clang__) && \
++  (0 && defined(ARCH_CPU_ARM64) && defined(__clang__) && \
+    !defined(ADDRESS_SANITIZER) &&                   \
+    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID)))
+ 
diff --git a/srcpkgs/qt6-pdf/patches/0139-old-clang.patch b/srcpkgs/qt6-pdf/patches/0139-old-clang.patch
new file mode 100644
index 00000000000000..4300abdea956e9
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0139-old-clang.patch
@@ -0,0 +1,11 @@
+--- a/src/3rdparty/chromium/build/config/compiler/BUILD.gn
++++ b/src/3rdparty/chromium/build/config/compiler/BUILD.gn
+@@ -1543,7 +1543,7 @@ config("compiler_deterministic") {
+     } else {
+       # -ffile-compilation-dir is an alias for both -fdebug-compilation-dir=
+       # and -fcoverage-compilation-dir=.
+-      cflags += [ "-ffile-compilation-dir=." ]
++      cflags += [ "-fdebug-compilation-dir=." ]
+       swiftflags += [ "-file-compilation-dir=." ]
+     }
+     if (!is_win) {
diff --git a/srcpkgs/qt6-pdf/patches/0140-reenable-linux-i686-builds.patch b/srcpkgs/qt6-pdf/patches/0140-reenable-linux-i686-builds.patch
new file mode 100644
index 00000000000000..47ff59a75bc42e
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0140-reenable-linux-i686-builds.patch
@@ -0,0 +1,19 @@
+--- a/src/3rdparty/chromium/BUILD.gn
++++ b/src/3rdparty/chromium/BUILD.gn
+@@ -1626,16 +1626,6 @@ if (use_blink && !is_cronet_build) {
+   }
+ }
+ 
+-# TODO(cassew): Add more OS's that don't support x86.
+-is_valid_x86_target =
+-    target_os != "ios" && target_os != "mac" &&
+-    (target_os != "linux" || use_libfuzzer || !build_with_chromium)
+-
+-# Note: v8_target_cpu == arm allows using the V8 arm simulator on x86 for fuzzing.
+-assert(
+-    is_valid_x86_target || target_cpu != "x86" || v8_target_cpu == "arm",
+-    "'target_cpu=x86' is not supported for 'target_os=$target_os'. Consider omitting 'target_cpu' (default) or using 'target_cpu=x64' instead.")
+-
+ group("chromium_builder_perf") {
+   testonly = true
+ 
diff --git a/srcpkgs/qt6-pdf/patches/0126-chromium-no-cdefs.patch b/srcpkgs/qt6-pdf/patches/0141-remove-sys-cdefs-includes.patch
similarity index 65%
rename from srcpkgs/qt6-pdf/patches/0126-chromium-no-cdefs.patch
rename to srcpkgs/qt6-pdf/patches/0141-remove-sys-cdefs-includes.patch
index 90faa3d664d02d..8d1c06e0dfa03c 100644
--- a/srcpkgs/qt6-pdf/patches/0126-chromium-no-cdefs.patch
+++ b/srcpkgs/qt6-pdf/patches/0141-remove-sys-cdefs-includes.patch
@@ -1,5 +1,5 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h
+--- a/src/3rdparty/chromium/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h
++++ b/src/3rdparty/chromium/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h
 @@ -17,8 +17,6 @@
  
  #include_next <sys/ptrace.h>
@@ -9,8 +9,8 @@
  // https://sourceware.org/bugzilla/show_bug.cgi?id=22433
  #if !defined(PTRACE_GET_THREAD_AREA) && !defined(PT_GET_THREAD_AREA) && \
      defined(__GLIBC__)
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/libsync/src/include/sync/sync.h
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/libsync/src/include/sync/sync.h
+--- a/src/3rdparty/chromium/third_party/libsync/src/include/sync/sync.h
++++ b/src/3rdparty/chromium/third_party/libsync/src/include/sync/sync.h
 @@ -19,12 +19,13 @@
  #ifndef __SYS_CORE_SYNC_H
  #define __SYS_CORE_SYNC_H
diff --git a/srcpkgs/qt6-pdf/patches/0142-sandbox-membarrier.patch b/srcpkgs/qt6-pdf/patches/0142-sandbox-membarrier.patch
new file mode 100644
index 00000000000000..47bcbf1de190e7
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0142-sandbox-membarrier.patch
@@ -0,0 +1,10 @@
+--- a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
++++ b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
+@@ -433,6 +433,7 @@ bool SyscallSets::IsAllowedProcessStartO
+   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-pdf/patches/0143-sndio.patch b/srcpkgs/qt6-pdf/patches/0143-sndio.patch
new file mode 100644
index 00000000000000..1e6dcac8d5a9bd
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0143-sndio.patch
@@ -0,0 +1,849 @@
+--- a/src/3rdparty/chromium/media/BUILD.gn
++++ b/src/3rdparty/chromium/media/BUILD.gn
+@@ -96,6 +96,9 @@ config("media_config") {
+       defines += [ "DLOPEN_PULSEAUDIO" ]
+     }
+   }
++  if (use_sndio) {
++    defines += [ "USE_SNDIO" ]
++  }
+   if (use_cras) {
+     defines += [ "USE_CRAS" ]
+   }
+--- a/src/3rdparty/chromium/media/audio/BUILD.gn
++++ b/src/3rdparty/chromium/media/audio/BUILD.gn
+@@ -282,6 +282,17 @@ jumbo_source_set("audio") {
+     sources += [ "linux/audio_manager_linux.cc" ]
+   }
+ 
++  if (use_sndio) {
++    libs += [ "sndio" ]
++    sources += [
++      "sndio/audio_manager_sndio.cc",
++      "sndio/sndio_input.cc",
++      "sndio/sndio_input.h",
++      "sndio/sndio_output.cc",
++      "sndio/sndio_output.h"
++    ]
++  }
++
+   if (use_alsa) {
+     libs += [ "asound" ]
+     sources += [
+--- a/src/3rdparty/chromium/media/audio/linux/audio_manager_linux.cc
++++ b/src/3rdparty/chromium/media/audio/linux/audio_manager_linux.cc
+@@ -23,6 +23,11 @@
+ #include "media/audio/pulse/audio_manager_pulse.h"
+ #include "media/audio/pulse/pulse_util.h"
+ #endif
++#if defined(USE_SNDIO)
++#include "media/audio/sndio/audio_manager_sndio.h"
++#include "media/audio/sndio/sndio_input.h"
++#include "media/audio/sndio/sndio_output.h"
++#endif
+ 
+ namespace media {
+ 
+--- /dev/null
++++ b/src/3rdparty/chromium/media/audio/sndio/audio_manager_sndio.cc
+@@ -0,0 +1,148 @@
++// Copyright (c) 2012 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "media/audio/sndio/audio_manager_sndio.h"
++
++#include "base/metrics/histogram_macros.h"
++#include "base/memory/ptr_util.h"
++#include "media/audio/audio_device_description.h"
++#include "media/audio/audio_output_dispatcher.h"
++#include "media/audio/sndio/sndio_input.h"
++#include "media/audio/sndio/sndio_output.h"
++#include "media/base/limits.h"
++#include "media/base/media_switches.h"
++
++namespace media {
++
++
++// Maximum number of output streams that can be open simultaneously.
++static const int kMaxOutputStreams = 4;
++
++// Default sample rate for input and output streams.
++static const int kDefaultSampleRate = 48000;
++
++void AddDefaultDevice(AudioDeviceNames* device_names) {
++  DCHECK(device_names->empty());
++  device_names->push_front(AudioDeviceName::CreateDefault());
++}
++
++bool AudioManagerSndio::HasAudioOutputDevices() {
++  return true;
++}
++
++bool AudioManagerSndio::HasAudioInputDevices() {
++  return true;
++}
++
++void AudioManagerSndio::GetAudioInputDeviceNames(
++    AudioDeviceNames* device_names) {
++  DCHECK(device_names->empty());
++  AddDefaultDevice(device_names);
++}
++
++void AudioManagerSndio::GetAudioOutputDeviceNames(
++    AudioDeviceNames* device_names) {
++  AddDefaultDevice(device_names);
++}
++
++const char* AudioManagerSndio::GetName() {
++  return "SNDIO";
++}
++
++AudioParameters AudioManagerSndio::GetInputStreamParameters(
++    const std::string& device_id) {
++  static const int kDefaultInputBufferSize = 1024;
++
++  int user_buffer_size = GetUserBufferSize();
++  int buffer_size = user_buffer_size ?
++      user_buffer_size : kDefaultInputBufferSize;
++
++  return AudioParameters(
++      AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO,
++      kDefaultSampleRate, buffer_size);
++}
++
++AudioManagerSndio::AudioManagerSndio(std::unique_ptr<AudioThread> audio_thread,
++                                         AudioLogFactory* audio_log_factory)
++    : AudioManagerBase(std::move(audio_thread),
++                       audio_log_factory) {
++  DLOG(WARNING) << "AudioManagerSndio";
++  SetMaxOutputStreamsAllowed(kMaxOutputStreams);
++}
++
++AudioManagerSndio::~AudioManagerSndio() {
++  Shutdown();
++}
++
++AudioOutputStream* AudioManagerSndio::MakeLinearOutputStream(
++    const AudioParameters& params,
++    const LogCallback& log_callback) {
++  DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format());
++  return MakeOutputStream(params);
++}
++
++AudioOutputStream* AudioManagerSndio::MakeLowLatencyOutputStream(
++    const AudioParameters& params,
++    const std::string& device_id,
++    const LogCallback& log_callback) {
++  DLOG_IF(ERROR, !device_id.empty()) << "Not implemented!";
++  DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format());
++  return MakeOutputStream(params);
++}
++
++AudioInputStream* AudioManagerSndio::MakeLinearInputStream(
++    const AudioParameters& params,
++    const std::string& device_id,
++    const LogCallback& log_callback) {
++  DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format());
++  return MakeInputStream(params);
++}
++
++AudioInputStream* AudioManagerSndio::MakeLowLatencyInputStream(
++    const AudioParameters& params,
++    const std::string& device_id,
++    const LogCallback& log_callback) {
++  DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format());
++  return MakeInputStream(params);
++}
++
++AudioParameters AudioManagerSndio::GetPreferredOutputStreamParameters(
++    const std::string& output_device_id,
++    const AudioParameters& input_params) {
++  // TODO(tommi): Support |output_device_id|.
++  DLOG_IF(ERROR, !output_device_id.empty()) << "Not implemented!";
++  static const int kDefaultOutputBufferSize = 2048;
++
++  ChannelLayout channel_layout = CHANNEL_LAYOUT_STEREO;
++  int sample_rate = kDefaultSampleRate;
++  int buffer_size = kDefaultOutputBufferSize;
++  if (input_params.IsValid()) {
++    sample_rate = input_params.sample_rate();
++    channel_layout = input_params.channel_layout();
++    buffer_size = std::min(buffer_size, input_params.frames_per_buffer());
++  }
++
++  int user_buffer_size = GetUserBufferSize();
++  if (user_buffer_size)
++    buffer_size = user_buffer_size;
++
++  return AudioParameters(
++      AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout,
++      sample_rate, buffer_size);
++}
++
++AudioInputStream* AudioManagerSndio::MakeInputStream(
++    const AudioParameters& params) {
++  DLOG(WARNING) << "MakeInputStream";
++  return new SndioAudioInputStream(this,
++             AudioDeviceDescription::kDefaultDeviceId, params);
++}
++
++AudioOutputStream* AudioManagerSndio::MakeOutputStream(
++    const AudioParameters& params) {
++  DLOG(WARNING) << "MakeOutputStream";
++  return new SndioAudioOutputStream(params, this);
++}
++
++}  // namespace media
+--- /dev/null
++++ b/src/3rdparty/chromium/media/audio/sndio/audio_manager_sndio.h
+@@ -0,0 +1,65 @@
++// Copyright (c) 2012 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef MEDIA_AUDIO_SNDIO_AUDIO_MANAGER_SNDIO_H_
++#define MEDIA_AUDIO_SNDIO_AUDIO_MANAGER_SNDIO_H_
++
++#include <set>
++
++#include "base/compiler_specific.h"
++#include "base/macros.h"
++#include "base/memory/ref_counted.h"
++#include "base/threading/thread.h"
++#include "media/audio/audio_manager_base.h"
++
++namespace media {
++
++class MEDIA_EXPORT AudioManagerSndio : public AudioManagerBase {
++ public:
++  AudioManagerSndio(std::unique_ptr<AudioThread> audio_thread,
++                   AudioLogFactory* audio_log_factory);
++  ~AudioManagerSndio() override;
++
++  // Implementation of AudioManager.
++  bool HasAudioOutputDevices() override;
++  bool HasAudioInputDevices() override;
++  void GetAudioInputDeviceNames(AudioDeviceNames* device_names) override;
++  void GetAudioOutputDeviceNames(AudioDeviceNames* device_names) override;
++  AudioParameters GetInputStreamParameters(
++      const std::string& device_id) override;
++  const char* GetName() override;
++
++  // Implementation of AudioManagerBase.
++  AudioOutputStream* MakeLinearOutputStream(
++      const AudioParameters& params,
++      const LogCallback& log_callback) override;
++  AudioOutputStream* MakeLowLatencyOutputStream(
++      const AudioParameters& params,
++      const std::string& device_id,
++      const LogCallback& log_callback) override;
++  AudioInputStream* MakeLinearInputStream(
++      const AudioParameters& params,
++      const std::string& device_id,
++      const LogCallback& log_callback) override;
++  AudioInputStream* MakeLowLatencyInputStream(
++      const AudioParameters& params,
++      const std::string& device_id,
++      const LogCallback& log_callback) override;
++
++ protected:
++  AudioParameters GetPreferredOutputStreamParameters(
++      const std::string& output_device_id,
++      const AudioParameters& input_params) override;
++
++ private:
++  // Called by MakeLinearOutputStream and MakeLowLatencyOutputStream.
++  AudioOutputStream* MakeOutputStream(const AudioParameters& params);
++  AudioInputStream* MakeInputStream(const AudioParameters& params);
++
++  DISALLOW_COPY_AND_ASSIGN(AudioManagerSndio);
++};
++
++}  // namespace media
++
++#endif  // MEDIA_AUDIO_SNDIO_AUDIO_MANAGER_SNDIO_H_
+--- /dev/null
++++ b/src/3rdparty/chromium/media/audio/sndio/sndio_input.cc
+@@ -0,0 +1,200 @@
++// Copyright 2013 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "base/bind.h"
++#include "base/logging.h"
++#include "base/macros.h"
++#include "media/base/audio_timestamp_helper.h"
++#include "media/audio/sndio/audio_manager_sndio.h"
++#include "media/audio/audio_manager.h"
++#include "media/audio/sndio/sndio_input.h"
++
++namespace media {
++
++static const SampleFormat kSampleFormat = kSampleFormatS16;
++
++void SndioAudioInputStream::OnMoveCallback(void *arg, int delta)
++{
++  SndioAudioInputStream* self = static_cast<SndioAudioInputStream*>(arg);
++
++  self->hw_delay += delta;
++}
++
++void *SndioAudioInputStream::ThreadEntry(void *arg) {
++  SndioAudioInputStream* self = static_cast<SndioAudioInputStream*>(arg);
++
++  self->ThreadLoop();
++  return NULL;
++}
++
++SndioAudioInputStream::SndioAudioInputStream(AudioManagerBase* manager,
++                                             const std::string& device_name,
++                                             const AudioParameters& params)
++    : manager(manager),
++      params(params),
++      audio_bus(AudioBus::Create(params)),
++      state(kClosed) {
++}
++
++SndioAudioInputStream::~SndioAudioInputStream() {
++  if (state != kClosed)
++    Close();
++}
++
++bool SndioAudioInputStream::Open() {
++  struct sio_par par;
++  int sig;
++
++  if (state != kClosed)
++    return false;
++
++  if (params.format() != AudioParameters::AUDIO_PCM_LINEAR &&
++      params.format() != AudioParameters::AUDIO_PCM_LOW_LATENCY) {
++    LOG(WARNING) << "Unsupported audio format.";
++    return false;
++  }
++
++  sio_initpar(&par);
++  par.rate = params.sample_rate();
++  par.rchan = params.channels();
++  par.bits = SampleFormatToBitsPerChannel(kSampleFormat);
++  par.bps = par.bits / 8;
++  par.sig = sig = par.bits != 8 ? 1 : 0;
++  par.le = SIO_LE_NATIVE;
++  par.appbufsz = params.frames_per_buffer();
++
++  hdl = sio_open(SIO_DEVANY, SIO_REC, 0);
++
++  if (hdl == NULL) {
++    LOG(ERROR) << "Couldn't open audio device.";
++    return false;
++  }
++
++  if (!sio_setpar(hdl, &par) || !sio_getpar(hdl, &par)) {
++    LOG(ERROR) << "Couldn't set audio parameters.";
++    goto bad_close;
++  }
++
++  if (par.rate  != (unsigned int)params.sample_rate() ||
++      par.rchan != (unsigned int)params.channels() ||
++      par.bits  != (unsigned int)SampleFormatToBitsPerChannel(kSampleFormat) ||
++      par.sig   != (unsigned int)sig ||
++      (par.bps > 1 && par.le != SIO_LE_NATIVE) ||
++      (par.bits != par.bps * 8)) {
++    LOG(ERROR) << "Unsupported audio parameters.";
++    goto bad_close;
++  }
++  state = kStopped;
++  buffer = new char[audio_bus->frames() * params.GetBytesPerFrame(kSampleFormat)];
++  sio_onmove(hdl, &OnMoveCallback, this);
++  return true;
++bad_close:
++  sio_close(hdl);
++  return false;
++}
++
++void SndioAudioInputStream::Start(AudioInputCallback* cb) {
++
++  StartAgc();
++
++  state = kRunning;
++  hw_delay = 0;
++  callback = cb;
++  sio_start(hdl);
++  if (pthread_create(&thread, NULL, &ThreadEntry, this) != 0) {
++    LOG(ERROR) << "Failed to create real-time thread for recording.";
++    sio_stop(hdl);
++    state = kStopped;
++  }
++}
++
++void SndioAudioInputStream::Stop() {
++
++  if (state == kStopped)
++    return;
++
++  state = kStopWait;
++  pthread_join(thread, NULL);
++  sio_stop(hdl);
++  state = kStopped;
++
++  StopAgc();
++}
++
++void SndioAudioInputStream::Close() {
++
++  if (state == kClosed)
++    return;
++
++  if (state == kRunning)
++    Stop();
++
++  state = kClosed;
++  delete [] buffer;
++  sio_close(hdl);
++
++  manager->ReleaseInputStream(this);
++}
++
++double SndioAudioInputStream::GetMaxVolume() {
++  // Not supported
++  return 0.0;
++}
++
++void SndioAudioInputStream::SetVolume(double volume) {
++  // Not supported. Do nothing.
++}
++
++double SndioAudioInputStream::GetVolume() {
++  // Not supported.
++  return 0.0;
++}
++
++bool SndioAudioInputStream::IsMuted() {
++  // Not supported.
++  return false;
++}
++
++void SndioAudioInputStream::SetOutputDeviceForAec(
++    const std::string& output_device_id) {
++  // Not supported.
++}
++
++void SndioAudioInputStream::ThreadLoop(void) {
++  size_t todo, n;
++  char *data;
++  unsigned int nframes;
++  double normalized_volume = 0.0;
++
++  nframes = audio_bus->frames();
++
++  while (state == kRunning && !sio_eof(hdl)) {
++
++    GetAgcVolume(&normalized_volume);
++
++    // read one block
++    todo = nframes * params.GetBytesPerFrame(kSampleFormat);
++    data = buffer;
++    while (todo > 0) {
++      n = sio_read(hdl, data, todo);
++      if (n == 0)
++        return;	// unrecoverable I/O error
++      todo -= n;
++      data += n;
++    }
++    hw_delay -= nframes;
++
++    // convert frames count to TimeDelta
++    const base::TimeDelta delay = AudioTimestampHelper::FramesToTime(hw_delay,
++      params.sample_rate());
++
++    // push into bus
++    audio_bus->FromInterleaved<SignedInt16SampleTypeTraits>(reinterpret_cast<int16_t*>(buffer), nframes);
++
++    // invoke callback
++    callback->OnData(audio_bus.get(), base::TimeTicks::Now() - delay, 1.);
++  }
++}
++
++}  // namespace media
+--- /dev/null
++++ b/src/3rdparty/chromium/media/audio/sndio/sndio_input.h
+@@ -0,0 +1,91 @@
++// Copyright 2013 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef MEDIA_AUDIO_SNDIO_SNDIO_INPUT_H_
++#define MEDIA_AUDIO_SNDIO_SNDIO_INPUT_H_
++
++#include <stdint.h>
++#include <string>
++#include <sndio.h>
++
++#include "base/compiler_specific.h"
++#include "base/macros.h"
++#include "base/memory/weak_ptr.h"
++#include "base/time/time.h"
++#include "media/audio/agc_audio_stream.h"
++#include "media/audio/audio_io.h"
++#include "media/audio/audio_device_description.h"
++#include "media/base/audio_parameters.h"
++
++namespace media {
++
++class AudioManagerBase;
++
++// Implementation of AudioOutputStream using sndio(7)
++class SndioAudioInputStream : public AgcAudioStream<AudioInputStream> {
++ public:
++  // Pass this to the constructor if you want to attempt auto-selection
++  // of the audio recording device.
++  static const char kAutoSelectDevice[];
++
++  // Create a PCM Output stream for the SNDIO device identified by
++  // |device_name|. If unsure of what to use for |device_name|, use
++  // |kAutoSelectDevice|.
++  SndioAudioInputStream(AudioManagerBase* audio_manager,
++                     const std::string& device_name,
++                     const AudioParameters& params);
++
++  ~SndioAudioInputStream() override;
++
++  // Implementation of AudioInputStream.
++  bool Open() override;
++  void Start(AudioInputCallback* callback) override;
++  void Stop() override;
++  void Close() override;
++  double GetMaxVolume() override;
++  void SetVolume(double volume) override;
++  double GetVolume() override;
++  bool IsMuted() override;
++  void SetOutputDeviceForAec(const std::string& output_device_id) override;
++
++ private:
++
++  enum StreamState {
++    kClosed,            // Not opened yet
++    kStopped,           // Device opened, but not started yet
++    kRunning,           // Started, device playing
++    kStopWait           // Stopping, waiting for the real-time thread to exit
++  };
++
++  // C-style call-backs
++  static void OnMoveCallback(void *arg, int delta);
++  static void* ThreadEntry(void *arg);
++
++  // Continuously moves data from the device to the consumer
++  void ThreadLoop();
++  // Our creator, the audio manager needs to be notified when we close.
++  AudioManagerBase* manager;
++  // Parameters of the source
++  AudioParameters params;
++  // We store data here for consumer
++  std::unique_ptr<AudioBus> audio_bus;
++  // Call-back that consumes recorded data
++  AudioInputCallback* callback;  // Valid during a recording session.
++  // Handle of the audio device
++  struct sio_hdl* hdl;
++  // Current state of the stream
++  enum StreamState state;
++  // High priority thread running ThreadLoop()
++  pthread_t thread;
++  // Number of frames buffered in the hardware
++  int hw_delay;
++  // Temporary buffer where data is stored sndio-compatible format
++  char* buffer;
++
++  DISALLOW_COPY_AND_ASSIGN(SndioAudioInputStream);
++};
++
++}  // namespace media
++
++#endif  // MEDIA_AUDIO_SNDIO_SNDIO_INPUT_H_
+--- /dev/null
++++ b/src/3rdparty/chromium/media/audio/sndio/sndio_output.cc
+@@ -0,0 +1,183 @@
++// Copyright (c) 2012 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "base/logging.h"
++#include "base/time/time.h"
++#include "base/time/default_tick_clock.h"
++#include "media/audio/audio_manager_base.h"
++#include "media/base/audio_timestamp_helper.h"
++#include "media/audio/sndio/sndio_output.h"
++
++namespace media {
++
++static const SampleFormat kSampleFormat = kSampleFormatS16;
++
++void SndioAudioOutputStream::OnMoveCallback(void *arg, int delta) {
++  SndioAudioOutputStream* self = static_cast<SndioAudioOutputStream*>(arg);
++
++  self->hw_delay -= delta;
++}
++
++void SndioAudioOutputStream::OnVolCallback(void *arg, unsigned int vol) {
++  SndioAudioOutputStream* self = static_cast<SndioAudioOutputStream*>(arg);
++
++  self->vol = vol;
++}
++
++void *SndioAudioOutputStream::ThreadEntry(void *arg) {
++  SndioAudioOutputStream* self = static_cast<SndioAudioOutputStream*>(arg);
++
++  self->ThreadLoop();
++  return NULL;
++}
++
++SndioAudioOutputStream::SndioAudioOutputStream(const AudioParameters& params,
++                                               AudioManagerBase* manager)
++    : manager(manager),
++      params(params),
++      audio_bus(AudioBus::Create(params)),
++      state(kClosed),
++      mutex(PTHREAD_MUTEX_INITIALIZER) {
++}
++
++SndioAudioOutputStream::~SndioAudioOutputStream() {
++  if (state != kClosed)
++    Close();
++}
++
++bool SndioAudioOutputStream::Open() {
++  struct sio_par par;
++  int sig;
++
++  if (params.format() != AudioParameters::AUDIO_PCM_LINEAR &&
++      params.format() != AudioParameters::AUDIO_PCM_LOW_LATENCY) {
++    LOG(WARNING) << "Unsupported audio format.";
++    return false;
++  }
++  sio_initpar(&par);
++  par.rate = params.sample_rate();
++  par.pchan = params.channels();
++  par.bits = SampleFormatToBitsPerChannel(kSampleFormat);
++  par.bps = par.bits / 8;
++  par.sig = sig = par.bits != 8 ? 1 : 0;
++  par.le = SIO_LE_NATIVE;
++  par.appbufsz = params.frames_per_buffer();
++
++  hdl = sio_open(SIO_DEVANY, SIO_PLAY, 0);
++  if (hdl == NULL) {
++    LOG(ERROR) << "Couldn't open audio device.";
++    return false;
++  }
++  if (!sio_setpar(hdl, &par) || !sio_getpar(hdl, &par)) {
++    LOG(ERROR) << "Couldn't set audio parameters.";
++    goto bad_close;
++  }
++  if (par.rate  != (unsigned int)params.sample_rate() ||
++      par.pchan != (unsigned int)params.channels() ||
++      par.bits  != (unsigned int)SampleFormatToBitsPerChannel(kSampleFormat) ||
++      par.sig   != (unsigned int)sig ||
++      (par.bps > 1 && par.le != SIO_LE_NATIVE) ||
++      (par.bits != par.bps * 8)) {
++    LOG(ERROR) << "Unsupported audio parameters.";
++    goto bad_close;
++  }
++  state = kStopped;
++  volpending = 0;
++  vol = 0;
++  buffer = new char[audio_bus->frames() * params.GetBytesPerFrame(kSampleFormat)];
++  sio_onmove(hdl, &OnMoveCallback, this);
++  sio_onvol(hdl, &OnVolCallback, this);
++  return true;
++ bad_close:
++  sio_close(hdl);
++  return false;
++}
++
++void SndioAudioOutputStream::Close() {
++  if (state == kClosed)
++    return;
++  if (state == kRunning)
++    Stop();
++  state = kClosed;
++  delete [] buffer;
++  sio_close(hdl);
++  manager->ReleaseOutputStream(this);  // Calls the destructor
++}
++
++void SndioAudioOutputStream::Start(AudioSourceCallback* callback) {
++  state = kRunning;
++  hw_delay = 0;
++  source = callback;
++  sio_start(hdl);
++  if (pthread_create(&thread, NULL, &ThreadEntry, this) != 0) {
++    LOG(ERROR) << "Failed to create real-time thread.";
++    sio_stop(hdl);
++    state = kStopped;
++  }
++}
++
++void SndioAudioOutputStream::Stop() {
++  if (state == kStopped)
++    return;
++  state = kStopWait;
++  pthread_join(thread, NULL);
++  sio_stop(hdl);
++  state = kStopped;
++}
++
++void SndioAudioOutputStream::SetVolume(double v) {
++  pthread_mutex_lock(&mutex);
++  vol = v * SIO_MAXVOL;
++  volpending = 1;
++  pthread_mutex_unlock(&mutex);
++}
++
++void SndioAudioOutputStream::GetVolume(double* v) {
++  pthread_mutex_lock(&mutex);
++  *v = vol * (1. / SIO_MAXVOL);
++  pthread_mutex_unlock(&mutex);
++}
++
++// This stream is always used with sub second buffer sizes, where it's
++// sufficient to simply always flush upon Start().
++void SndioAudioOutputStream::Flush() {}
++
++void SndioAudioOutputStream::ThreadLoop(void) {
++  int avail, count, result;
++
++  while (state == kRunning) {
++    // Update volume if needed
++    pthread_mutex_lock(&mutex);
++    if (volpending) {
++      volpending = 0;
++      sio_setvol(hdl, vol);
++    }
++    pthread_mutex_unlock(&mutex);
++
++    // Get data to play
++    const base::TimeDelta delay = AudioTimestampHelper::FramesToTime(hw_delay,
++	params.sample_rate());
++    count = source->OnMoreData(delay, base::TimeTicks::Now(), 0, audio_bus.get());
++    audio_bus->ToInterleaved<SignedInt16SampleTypeTraits>(count, reinterpret_cast<int16_t*>(buffer));
++    if (count == 0) {
++      // We have to submit something to the device
++      count = audio_bus->frames();
++      memset(buffer, 0, count * params.GetBytesPerFrame(kSampleFormat));
++      LOG(WARNING) << "No data to play, running empty cycle.";
++    }
++
++    // Submit data to the device
++    avail = count * params.GetBytesPerFrame(kSampleFormat);
++    result = sio_write(hdl, buffer, avail);
++    if (result == 0) {
++      LOG(WARNING) << "Audio device disconnected.";
++      break;
++    }
++
++    // Update hardware pointer
++    hw_delay += count;
++  }
++}
++
++}  // namespace media
+--- /dev/null
++++ b/src/3rdparty/chromium/media/audio/sndio/sndio_output.h
+@@ -0,0 +1,86 @@
++// Copyright (c) 2012 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef MEDIA_AUDIO_SNDIO_SNDIO_OUTPUT_H_
++#define MEDIA_AUDIO_SNDIO_SNDIO_OUTPUT_H_
++
++#include <pthread.h>
++#include <sndio.h>
++
++#include "base/time/tick_clock.h"
++#include "base/time/time.h"
++#include "media/audio/audio_io.h"
++
++namespace media {
++
++class AudioManagerBase;
++
++// Implementation of AudioOutputStream using sndio(7)
++class SndioAudioOutputStream : public AudioOutputStream {
++ public:
++  // The manager is creating this object
++  SndioAudioOutputStream(const AudioParameters& params,
++                         AudioManagerBase* manager);
++  virtual ~SndioAudioOutputStream();
++
++  // Implementation of AudioOutputStream.
++  bool Open() override;
++  void Close() override;
++  void Start(AudioSourceCallback* callback) override;
++  void Stop() override;
++  void SetVolume(double volume) override;
++  void GetVolume(double* volume) override;
++  void Flush() override;
++
++  friend void sndio_onmove(void *arg, int delta);
++  friend void sndio_onvol(void *arg, unsigned int vol);
++  friend void *sndio_threadstart(void *arg);
++
++ private:
++  enum StreamState {
++    kClosed,            // Not opened yet
++    kStopped,           // Device opened, but not started yet
++    kRunning,           // Started, device playing
++    kStopWait           // Stopping, waiting for the real-time thread to exit
++  };
++
++  // C-style call-backs
++  static void OnMoveCallback(void *arg, int delta);
++  static void OnVolCallback(void *arg, unsigned int vol);
++  static void* ThreadEntry(void *arg);
++
++  // Continuously moves data from the producer to the device
++  void ThreadLoop(void);
++
++  // Our creator, the audio manager needs to be notified when we close.
++  AudioManagerBase* manager;
++  // Parameters of the source
++  AudioParameters params;
++  // Source stores data here
++  std::unique_ptr<AudioBus> audio_bus;
++  // Call-back that produces data to play
++  AudioSourceCallback* source;
++  // Handle of the audio device
++  struct sio_hdl* hdl;
++  // Current state of the stream
++  enum StreamState state;
++  // High priority thread running ThreadLoop()
++  pthread_t thread;
++  // Protects vol, volpending and hw_delay
++  pthread_mutex_t mutex;
++  // Current volume in the 0..SIO_MAXVOL range
++  int vol;
++  // Set to 1 if volumes must be refreshed in the realtime thread
++  int volpending;
++  // Number of frames buffered in the hardware
++  int hw_delay;
++  // Temporary buffer where data is stored sndio-compatible format
++  char* buffer;
++
++  DISALLOW_COPY_AND_ASSIGN(SndioAudioOutputStream);
++};
++
++}  // namespace media
++
++#endif  // MEDIA_AUDIO_SNDIO_SNDIO_OUTPUT_H_
+--- a/src/3rdparty/chromium/media/media_options.gni
++++ b/src/3rdparty/chromium/media/media_options.gni
+@@ -189,6 +189,9 @@ declare_args() {
+   # Enables runtime selection of ALSA library for audio.
+   use_alsa = false
+ 
++  # Enable runtime selection of sndio(7)
++  use_sndio = false
++
+   # Alsa should be used on all non-Android, non-Mac POSIX systems - with the
+   # exception of CastOS desktop builds.
+   #
diff --git a/srcpkgs/qt6-pdf/patches/0155-systypes.patch b/srcpkgs/qt6-pdf/patches/0144-systypes.patch
similarity index 93%
rename from srcpkgs/qt6-pdf/patches/0155-systypes.patch
rename to srcpkgs/qt6-pdf/patches/0144-systypes.patch
index f4e71e939cd1ce..431f7add784da2 100644
--- a/srcpkgs/qt6-pdf/patches/0155-systypes.patch
+++ b/srcpkgs/qt6-pdf/patches/0144-systypes.patch
@@ -1,6 +1,6 @@
 --- a/src/3rdparty/chromium/base/third_party/symbolize/symbolize.h
 +++ b/src/3rdparty/chromium/base/third_party/symbolize/symbolize.h
-@@ -58,6 +58,8 @@
+@@ -60,6 +60,8 @@
  #include "config.h"
  #include "glog/logging.h"
  
diff --git a/srcpkgs/qt6-pdf/patches/0150-chromium-unbundle-ffmpeg-av_stream_get_first_dts.patch b/srcpkgs/qt6-pdf/patches/0145-unbundle-ffmpeg-av_stream_get_first_dts.patch
similarity index 56%
rename from srcpkgs/qt6-pdf/patches/0150-chromium-unbundle-ffmpeg-av_stream_get_first_dts.patch
rename to srcpkgs/qt6-pdf/patches/0145-unbundle-ffmpeg-av_stream_get_first_dts.patch
index e7f6048fbc1c7b..7d426098ed0228 100644
--- a/srcpkgs/qt6-pdf/patches/0150-chromium-unbundle-ffmpeg-av_stream_get_first_dts.patch
+++ b/srcpkgs/qt6-pdf/patches/0145-unbundle-ffmpeg-av_stream_get_first_dts.patch
@@ -1,5 +1,5 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/build/linux/unbundle/ffmpeg.gn
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/build/linux/unbundle/ffmpeg.gn
+--- a/src/3rdparty/chromium/build/linux/unbundle/ffmpeg.gn
++++ b/src/3rdparty/chromium/build/linux/unbundle/ffmpeg.gn
 @@ -12,6 +12,7 @@ pkg_config("system_ffmpeg") {
      "libavformat",
      "libavutil",
diff --git a/srcpkgs/qt6-pdf/patches/0151-chromium-unbundled-cross-toolchain.patch b/srcpkgs/qt6-pdf/patches/0146-unbundled-cross-toolchain.patch
similarity index 56%
rename from srcpkgs/qt6-pdf/patches/0151-chromium-unbundled-cross-toolchain.patch
rename to srcpkgs/qt6-pdf/patches/0146-unbundled-cross-toolchain.patch
index 746d2dfb9a7ed2..4381d0779ede74 100644
--- a/srcpkgs/qt6-pdf/patches/0151-chromium-unbundled-cross-toolchain.patch
+++ b/srcpkgs/qt6-pdf/patches/0146-unbundled-cross-toolchain.patch
@@ -1,5 +1,5 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/build/toolchain/linux/unbundle/BUILD.gn
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/build/toolchain/linux/unbundle/BUILD.gn
+--- a/src/3rdparty/chromium/build/toolchain/linux/unbundle/BUILD.gn
++++ b/src/3rdparty/chromium/build/toolchain/linux/unbundle/BUILD.gn
 @@ -35,8 +35,8 @@ gcc_toolchain("host") {
    extra_ldflags = getenv("BUILD_LDFLAGS")
  
diff --git a/srcpkgs/qt6-pdf/patches/0148-webrtc-size_t.patch b/srcpkgs/qt6-pdf/patches/0148-webrtc-size_t.patch
new file mode 100644
index 00000000000000..c9f26b15e6a821
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0148-webrtc-size_t.patch
@@ -0,0 +1,10 @@
+--- a/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
++++ b/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
+@@ -14,6 +14,7 @@
+ #include <stddef.h>
+ 
+ #include <array>
++#include <cstddef>
+ 
+ namespace webrtc {
+ 
diff --git a/srcpkgs/qt6-pdf/patches/0152-chromium-webrtc-size_t.patch b/srcpkgs/qt6-pdf/patches/0152-chromium-webrtc-size_t.patch
deleted file mode 100644
index 8f60204ff5845d..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0152-chromium-webrtc-size_t.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
-@@ -14,6 +14,7 @@
- #include <stddef.h>
- 
- #include <array>
-+#include <cstddef>
- 
- namespace webrtc {
- 
diff --git a/srcpkgs/qt6-pdf/patches/0153-chromium-webrtc-size_t.patch b/srcpkgs/qt6-pdf/patches/0153-chromium-webrtc-size_t.patch
deleted file mode 100644
index 3b5b7a3d53b995..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0153-chromium-webrtc-size_t.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/angle/include/platform/PlatformMethods.h
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/angle/include/platform/PlatformMethods.h
-@@ -222,11 +222,11 @@ inline void DefaultHistogramBoolean(Plat
- 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-pdf/patches/0154-chromium-uit_t.patch b/srcpkgs/qt6-pdf/patches/0154-chromium-uit_t.patch
deleted file mode 100644
index d13a31fee402b0..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0154-chromium-uit_t.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/sandbox/linux/services/credentials.h
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/sandbox/linux/services/credentials.h
-@@ -14,6 +14,8 @@
- #include <string>
- #include <vector>
- 
-+#include <sys/types.h>
-+
- #include "sandbox/linux/system_headers/capability.h"
- #include "sandbox/sandbox_export.h"
- 
diff --git a/srcpkgs/qt6-pdf/patches/0300-chromium-musl-hacks.patch b/srcpkgs/qt6-pdf/patches/0300-chromium-musl-hacks.patch
deleted file mode 100644
index e0b91a09a84f4b..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0300-chromium-musl-hacks.patch
+++ /dev/null
@@ -1,38 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/base/debug/stack_trace.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/base/debug/stack_trace.cc
-@@ -234,7 +234,7 @@ bool StackTrace::WillSymbolizeToStreamFo
-   // Symbols are not expected to be reliable when gn args specifies
-   // symbol_level=0.
-   return false;
--#elif defined(__UCLIBC__) || defined(_AIX)
-+#elif defined(__GLIBC__) || defined(_AIX)
-   // StackTrace::OutputToStream() is not implemented under uclibc, nor AIX.
-   // See https://crbug.com/706728
-   return false;
-@@ -273,7 +273,9 @@ void StackTrace::Print() const {
- }
- 
- void StackTrace::OutputToStream(std::ostream* os) const {
-+#if defined(__GLIBC__)
-   OutputToStreamWithPrefix(os, nullptr);
-+#endif
- }
- 
- std::string StackTrace::ToString() const {
-@@ -281,14 +283,14 @@ std::string StackTrace::ToString() const
- }
- 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();
- }
- 
- std::ostream& operator<<(std::ostream& os, const StackTrace& s) {
--#if !defined(__UCLIBC__) && !defined(_AIX)
-+#if defined(__GLIBC__) && !defined(_AIX)
-   s.OutputToStream(&os);
- #else
-   os << "StackTrace::OutputToStream not implemented.";
diff --git a/srcpkgs/qt6-pdf/patches/0301-chromium-musl-sandbox.patch b/srcpkgs/qt6-pdf/patches/0301-chromium-musl-sandbox.patch
deleted file mode 100644
index 8332e6a67117e1..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0301-chromium-musl-sandbox.patch
+++ /dev/null
@@ -1,70 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
-@@ -134,6 +134,7 @@ namespace sandbox {
- ResultExpr RestrictCloneToThreadsAndEPERMFork() {
-   const Arg<unsigned long> flags(0);
- 
-+#ifdef __GLIBC__
-   // TODO(mdempsky): Extend DSL to support (flags & ~mask1) == mask2.
-   const uint64_t kAndroidCloneMask = CLONE_VM | CLONE_FS | CLONE_FILES |
-                                      CLONE_SIGHAND | CLONE_THREAD |
-@@ -160,6 +161,16 @@ ResultExpr RestrictCloneToThreadsAndEPER
-   return If(IsAndroid() ? android_test : glibc_test, Allow())
-       .ElseIf(is_fork_or_clone_vfork, 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
- }
- 
- #ifndef PR_PAC_RESET_KEYS
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
-@@ -424,6 +424,9 @@ bool SyscallSets::IsAllowedProcessStartO
- #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.
-@@ -436,7 +439,9 @@ bool SyscallSets::IsAllowedProcessStartO
- #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:
-@@ -550,6 +555,10 @@ bool SyscallSets::IsAllowedAddressSpaceA
-     case __NR_mlock:
-     case __NR_munlock:
-     case __NR_munmap:
-+#ifndef __GLIBC__
-+    case __NR_mremap:
-+    case __NR_membarrier:
-+#endif
-       return true;
-     case __NR_madvise:
-     case __NR_mincore:
-@@ -567,7 +575,9 @@ bool SyscallSets::IsAllowedAddressSpaceA
-     case __NR_modify_ldt:
- #endif
-     case __NR_mprotect:
-+#ifdef __GLIBC__
-     case __NR_mremap:
-+#endif
-     case __NR_msync:
-     case __NR_munlockall:
-     case __NR_readahead:
diff --git a/srcpkgs/qt6-pdf/patches/0700-armv7l-neon.patch b/srcpkgs/qt6-pdf/patches/0700-armv7l-neon.patch
deleted file mode 100644
index 5ca1953d2cb35d..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0700-armv7l-neon.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/skia/BUILD.gn
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/skia/BUILD.gn
-@@ -786,7 +786,6 @@ skia_source_set("skia_opts") {
-         # 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-pdf/patches/0750-chromium-musl-cross-no-asm_ptrace_h.patch b/srcpkgs/qt6-pdf/patches/0750-chromium-musl-cross-no-asm_ptrace_h.patch
deleted file mode 100644
index ca7b0150962c7a..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0750-chromium-musl-cross-no-asm_ptrace_h.patch
+++ /dev/null
@@ -1,30 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
-@@ -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>
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc
-@@ -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-pdf/patches/0751-chromium-musl-arm-user_vfp.patch b/srcpkgs/qt6-pdf/patches/0751-chromium-musl-arm-user_vfp.patch
deleted file mode 100644
index d7c18036d503a0..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0751-chromium-musl-arm-user_vfp.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/third_party/crashpad/crashpad/util/linux/thread_info.h
-+++ qt6-webengine-6.4.2/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-pdf/patches/0752-chromium-musl-arm-elf_auxv_t.patch b/srcpkgs/qt6-pdf/patches/0752-chromium-musl-arm-elf_auxv_t.patch
deleted file mode 100644
index 52f5f47be831d7..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0752-chromium-musl-arm-elf_auxv_t.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- qt6-webengine-6.4.2.orig/src/3rdparty/chromium/v8/src/base/cpu.cc
-+++ qt6-webengine-6.4.2/src/3rdparty/chromium/v8/src/base/cpu.cc
-@@ -165,6 +165,15 @@ static V8_INLINE void __cpuid(int cpu_in
- 
- #if V8_HOST_ARCH_ARM || V8_HOST_ARCH_ARM64
- 
-+#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() {
-   uint32_t result = 0;
- #if V8_GLIBC_PREREQ(2, 16)
diff --git a/srcpkgs/qt6-pdf/patches/0753-chromium-musl-32-bit-fstat.patch b/srcpkgs/qt6-pdf/patches/0753-chromium-musl-32-bit-fstat.patch
deleted file mode 100644
index 09239a8198417a..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0753-chromium-musl-32-bit-fstat.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/src/3rdparty/chromium/third_party/lss/linux_syscall_support.h
-+++ b/src/3rdparty/chromium/third_party/lss/linux_syscall_support.h
-@@ -293,6 +293,10 @@ struct kernel_rusage {
-   long               ru_nivcsw;
- };
- 
-+#ifdef fstatat64
-+#undef fstatat64
-+#endif
-+
- #if defined(__i386__) || defined(__ARM_EABI__) || defined(__ARM_ARCH_3__) \
-   || defined(__PPC__) || (defined(__s390__) && !defined(__s390x__)) \
-   || defined(__e2k__)
diff --git a/srcpkgs/qt6-pdf/patches/0800-musl-sandbox.patch b/srcpkgs/qt6-pdf/patches/0800-musl-sandbox.patch
new file mode 100644
index 00000000000000..a59c273653012b
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0800-musl-sandbox.patch
@@ -0,0 +1,121 @@
+Source: https://git.alpinelinux.org/aports/tree/community/chromium/musl-sandbox.patch
+musl uses different syscalls from glibc for some functions,
+so the sandbox has to account for that
+--- a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
++++ b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
+@@ -132,6 +132,7 @@ namespace sandbox {
+ ResultExpr RestrictCloneToThreadsAndEPERMFork() {
+   const Arg<unsigned long> flags(0);
+ 
++#ifdef __GLIBC__
+   // TODO(mdempsky): Extend DSL to support (flags & ~mask1) == mask2.
+   const uint64_t kAndroidCloneMask = CLONE_VM | CLONE_FS | CLONE_FILES |
+                                      CLONE_SIGHAND | CLONE_THREAD |
+@@ -146,6 +147,13 @@ ResultExpr RestrictCloneToThreadsAndEPER
+   const BoolExpr android_test =
+       AnyOf(flags == kAndroidCloneMask, flags == kObsoleteAndroidCloneMask,
+             flags == kGlibcPthreadFlags);
++#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;
++#endif
+ 
+   // The following two flags are the two important flags in any vfork-emulating
+   // clone call. EPERM any clone call that contains both of them.
+@@ -155,7 +163,11 @@ ResultExpr RestrictCloneToThreadsAndEPER
+       AnyOf((flags & (CLONE_VM | CLONE_THREAD)) == 0,
+             (flags & kImportantCloneVforkFlags) == kImportantCloneVforkFlags);
+ 
++#ifdef __GLIBC__
+   return If(IsAndroid() ? android_test : glibc_test, Allow())
++#else
++  return If(thread_clone_ok, Allow())
++#endif
+       .ElseIf(is_fork_or_clone_vfork, Error(EPERM))
+       .Else(CrashSIGSYSClone());
+ }
+--- a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
++++ b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
+@@ -439,6 +439,9 @@ bool SyscallSets::IsAllowedProcessStartO
+ #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.
+@@ -451,7 +454,9 @@ bool SyscallSets::IsAllowedProcessStartO
+ #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:
+@@ -549,6 +554,10 @@ bool SyscallSets::IsAllowedAddressSpaceA
+     case __NR_mlock:
+     case __NR_munlock:
+     case __NR_munmap:
++#ifndef __GLIBC__
++    case __NR_mremap:
++    case __NR_membarrier:
++#endif
+       return true;
+     case __NR_madvise:
+     case __NR_mincore:
+@@ -566,7 +575,9 @@ bool SyscallSets::IsAllowedAddressSpaceA
+     case __NR_modify_ldt:
+ #endif
+     case __NR_mprotect:
++#ifdef __GLIBC__
+     case __NR_mremap:
++#endif
+     case __NR_msync:
+     case __NR_munlockall:
+     case __NR_readahead:
+--- a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
++++ b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
+@@ -225,12 +225,26 @@ ResultExpr EvaluateSyscallImpl(int fs_de
+   if (sysno == __NR_getpriority || sysno ==__NR_setpriority)
+     return RestrictGetSetpriority(current_pid);
+ 
++#ifndef __GLIBC__
++  // XXX: hacks for musl sandbox, calls needed?
++  if (sysno == __NR_sched_getparam || sysno == __NR_sched_getscheduler ||
++      sysno == __NR_sched_setscheduler) {
++    return Allow();
++  }
++#endif
++
+   // The scheduling syscalls are used in threading libraries and also heavily in
+   // abseil. See for example https://crbug.com/1370394.
++#ifdef __GLIBC__
+   if (sysno == __NR_sched_getaffinity || sysno == __NR_sched_getparam ||
+       sysno == __NR_sched_getscheduler || sysno == __NR_sched_setscheduler) {
+     return RestrictSchedTarget(current_pid, sysno);
+   }
++#else
++  if (sysno == __NR_sched_getaffinity) {
++    return RestrictSchedTarget(current_pid, sysno);
++  }
++#endif
+ 
+   if (sysno == __NR_getrandom) {
+     return RestrictGetRandom();
+--- a/src/3rdparty/chromium/sandbox/linux/system_headers/linux_syscalls.h
++++ b/src/3rdparty/chromium/sandbox/linux/system_headers/linux_syscalls.h
+@@ -10,6 +10,7 @@
+ #define SANDBOX_LINUX_SYSTEM_HEADERS_LINUX_SYSCALLS_H_
+ 
+ #include "build/build_config.h"
++#include <sys/syscall.h>
+ 
+ #if defined(__x86_64__)
+ #include "sandbox/linux/system_headers/x86_64_linux_syscalls.h"
diff --git a/srcpkgs/qt6-pdf/patches/0010-chromium-musl-tid-caching.patch b/srcpkgs/qt6-pdf/patches/0801-musl-tid-caching.patch
similarity index 92%
rename from srcpkgs/qt6-pdf/patches/0010-chromium-musl-tid-caching.patch
rename to srcpkgs/qt6-pdf/patches/0801-musl-tid-caching.patch
index 8fbf4c0b1ba6f8..5e482667fcfb6e 100644
--- a/srcpkgs/qt6-pdf/patches/0010-chromium-musl-tid-caching.patch
+++ b/srcpkgs/qt6-pdf/patches/0801-musl-tid-caching.patch
@@ -2,13 +2,13 @@ Source: https://git.alpinelinux.org/aports/plain/community/chromium/musl-tid-cac
 the sandbox caching of thread id's only works with glibc
 see: https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/32356
 see: https://gitlab.alpinelinux.org/alpine/aports/-/issues/13579
---
 --- a/src/3rdparty/chromium/sandbox/linux/services/namespace_sandbox.cc
 +++ b/src/3rdparty/chromium/sandbox/linux/services/namespace_sandbox.cc
-@@ -209,6 +209,70 @@
+@@ -208,6 +208,72 @@ base::Process NamespaceSandbox::LaunchPr
    return base::LaunchProcess(argv, launch_options_copy);
  }
  
++#ifndef __GLIBC__
 +#if defined(__aarch64__) || defined(__arm__) || defined(__powerpc__)
 +#define TLS_ABOVE_TP
 +#endif
@@ -72,15 +72,16 @@ see: https://gitlab.alpinelinux.org/alpine/aports/-/issues/13579
 +  pid_t* cached_tid_location = &reinterpret_cast<struct musl_pthread*>(pthread_self())->tid;
 +  *cached_tid_location = real_tid;
 +}
++#endif
 +
  // static
  pid_t NamespaceSandbox::ForkInNewPidNamespace(bool drop_capabilities_in_child) {
    const pid_t pid =
-@@ -226,6 +290,8 @@
+@@ -225,6 +291,9 @@ pid_t NamespaceSandbox::ForkInNewPidName
  #if defined(LIBC_GLIBC)
      MaybeUpdateGlibcTidCache();
--#endif
-+#else
+ #endif
++#ifndef __GLIBC__
 +    MaybeUpdateMuslTidCache();
 +#endif
      return 0;
diff --git a/srcpkgs/qt6-pdf/patches/0802-musl-no-res-ninit-nclose.patch b/srcpkgs/qt6-pdf/patches/0802-musl-no-res-ninit-nclose.patch
new file mode 100644
index 00000000000000..e2a01d946d3c95
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0802-musl-no-res-ninit-nclose.patch
@@ -0,0 +1,20 @@
+--- a/src/3rdparty/chromium/net/dns/public/scoped_res_state.cc
++++ b/src/3rdparty/chromium/net/dns/public/scoped_res_state.cc
+@@ -13,7 +13,7 @@
+ namespace net {
+ 
+ ScopedResState::ScopedResState() {
+-#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_FUCHSIA)
++#ifndef __GLIBC__
+   // Note: res_ninit in glibc always returns 0 and sets RES_INIT.
+   // res_init behaves the same way.
+   memset(&_res, 0, sizeof(_res));
+@@ -30,7 +30,7 @@ ScopedResState::~ScopedResState() {
+   // Prefer res_ndestroy where available.
+ #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD)
+   res_ndestroy(&res_);
+-#else
++#elif defined(__GLIBC__)
+   res_nclose(&res_);
+ #endif  // BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD)
+ 
diff --git a/srcpkgs/qt6-pdf/patches/0803-musl-include.patch b/srcpkgs/qt6-pdf/patches/0803-musl-include.patch
new file mode 100644
index 00000000000000..b8e24762c77aa1
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0803-musl-include.patch
@@ -0,0 +1,10 @@
+--- a/src/3rdparty/chromium/gpu/config/gpu_driver_bug_workarounds.h
++++ b/src/3rdparty/chromium/gpu/config/gpu_driver_bug_workarounds.h
+@@ -5,6 +5,7 @@
+ #ifndef GPU_CONFIG_GPU_DRIVER_BUG_WORKAROUNDS_H_
+ #define GPU_CONFIG_GPU_DRIVER_BUG_WORKAROUNDS_H_
+ 
++#include <cstdint>
+ #include <vector>
+ 
+ #include "build/build_config.h"
diff --git a/srcpkgs/qt6-pdf/patches/0998-cross.patch b/srcpkgs/qt6-pdf/patches/0998-cross.patch
deleted file mode 100644
index 9e62be4b4c64d4..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0998-cross.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/examples/CMakeLists.txt	2023-10-03 21:49:54.000000000 +0200
-+++ -	2023-10-27 11:12:01.573293042 +0200
-@@ -4,7 +4,7 @@
- cmake_minimum_required(VERSION 3.16)
- 
- qt_examples_build_begin(EXTERNAL_BUILD)
--if(NOT CMAKE_CROSSCOMPILING) #QTBUG-86533
-+#if(NOT CMAKE_CROSSCOMPILING) #QTBUG-86533
-     if(TARGET Qt::WebEngineCore)
-         add_subdirectory(webenginequick)
-     endif()
-@@ -17,5 +17,5 @@
-     if(TARGET Qt::PdfWidgets)
-         add_subdirectory(pdfwidgets)
-     endif()
--endif()
-+#endif()
- qt_examples_build_end()
diff --git a/srcpkgs/qt6-pdf/patches/0998-example-cross-build.patch b/srcpkgs/qt6-pdf/patches/0998-example-cross-build.patch
new file mode 100644
index 00000000000000..8fb4c7799857d8
--- /dev/null
+++ b/srcpkgs/qt6-pdf/patches/0998-example-cross-build.patch
@@ -0,0 +1,11 @@
+--- a/examples/CMakeLists.txt
++++ b/examples/CMakeLists.txt
+@@ -4,7 +4,7 @@
+ cmake_minimum_required(VERSION 3.16)
+ 
+ qt_examples_build_begin(EXTERNAL_BUILD)
+-if(NOT CMAKE_CROSSCOMPILING) #QTBUG-86533
++if(TRUE) #QTBUG-86533
+     if(TARGET Qt::WebEngineCore)
+         add_subdirectory(webenginequick)
+     endif()
diff --git a/srcpkgs/qt6-pdf/patches/0999-python3.12.patch b/srcpkgs/qt6-pdf/patches/0999-python3.12.patch
deleted file mode 100644
index 40d4010c82688b..00000000000000
--- a/srcpkgs/qt6-pdf/patches/0999-python3.12.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/fileutil.py	2023-10-03 21:49:54.000000000 +0200
-+++ -	2023-10-13 23:26:56.151025878 +0200
-@@ -3,7 +3,6 @@
- # found in the LICENSE file.
- 
- import errno
--import imp
- import os.path
- import sys
- 
---- a/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/parse/lexer.py	2023-10-03 21:49:54.000000000 +0200
-+++ -	2023-10-13 23:28:56.391987051 +0200
-@@ -2,7 +2,6 @@
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
- 
--import imp
- import os.path
- import sys
-
diff --git a/srcpkgs/qt6-pdf/patches/1000-we-know-what-will-be-supported.patch b/srcpkgs/qt6-pdf/patches/1000-we-know-what-will-be-supported.patch
index d9dd1c753527a3..fcf515071fecc0 100644
--- a/srcpkgs/qt6-pdf/patches/1000-we-know-what-will-be-supported.patch
+++ b/srcpkgs/qt6-pdf/patches/1000-we-know-what-will-be-supported.patch
@@ -1,27 +1,15 @@
---- a/src/3rdparty/chromium/BUILD.gn
-+++ b/src/3rdparty/chromium/BUILD.gn
-@@ -1647,9 +1647,7 @@ if (!is_ios && !is_qtwebengine) {
- }
- 
- # TODO(cassew): Add more OS's that don't support x86.
--is_valid_x86_target =
--    target_os != "ios" && target_os != "mac" &&
--    (target_os != "linux" || use_libfuzzer || !build_with_chromium)
-+is_valid_x86_target = true
- 
- # Note: v8_target_cpu == arm allows using the V8 arm simulator on x86 for fuzzing.
- assert(
 --- a/src/host/CMakeLists.txt
 +++ b/src/host/CMakeLists.txt
-@@ -48,18 +48,3 @@ if(QT_FEATURE_qtpdf_build)
+@@ -50,19 +50,3 @@ if(QT_FEATURE_qtpdf_build)
          DESTINATION ${WEBENGINE_ROOT_BUILD_DIR}/src/pdf/v8_toolchain
      )
  endif()
 -
 -# TODO: this could be run as part of main configure with execute_process
+-# Skip for qtpdf(android)
 -
 -if(CMAKE_CXX_COMPILER_ID STREQUAL GNU AND TEST_architecture_arch STREQUAL "x86_64"
--AND GN_TARGET_CPU STREQUAL "arm")
+-    AND GN_TARGET_CPU STREQUAL "arm" AND NOT MINGW AND NOT ANDROID)
 -    try_compile(
 -        has32HostCompiler
 -        "${CMAKE_CURRENT_BINARY_DIR}/config.tests/hostcompiler"
diff --git a/srcpkgs/qt6-pdf/patches/Partial-migration-from-imp-to-importlib.patch b/srcpkgs/qt6-pdf/patches/Partial-migration-from-imp-to-importlib.patch
deleted file mode 100644
index 46cc88f9bf1770..00000000000000
--- a/srcpkgs/qt6-pdf/patches/Partial-migration-from-imp-to-importlib.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From cbf5f7ad619a967bd54482e1d1df36d80b28145a Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk@redhat.com>
-Date: Thu, 13 Jul 2023 12:18:00 +0200
-Subject: [PATCH] Partial migration from imp to importlib
-
----
- .../resources/protobufs/binary_proto_generator.py           | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py b/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py
-index 2a1802d..ba67251 100755
---- a/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py
-+++ b/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py
-@@ -9,7 +9,7 @@
- """
- from __future__ import print_function
- import abc
--import imp
-+from importlib import util
- import optparse
- import os
- import re
-@@ -68,7 +68,9 @@ class GoogleProtobufModuleImporter:
-       raise ImportError(fullname)
- 
-     filepath = self._fullname_to_filepath(fullname)
--    return imp.load_source(fullname, filepath)
-+    spec = util.spec_from_file_location(fullname, filepath)
-+    loaded = util.module_from_spec(spec)
-+    return spec.loader.exec_module(loaded)
- 
- class BinaryProtoGenerator:
- 
--- 
-2.41.0
-
diff --git a/srcpkgs/qt6-pdf/patches/fix-libxml2-2.12.patch b/srcpkgs/qt6-pdf/patches/fix-libxml2-2.12.patch
deleted file mode 100644
index f85ee4d01ff64f..00000000000000
--- a/srcpkgs/qt6-pdf/patches/fix-libxml2-2.12.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-Based on: https://github.com/chromium/chromium/commit/871f8ae9b65ce2679b0bc0be36902d65edf0c1e4
-
-diff --git a/third_party/blink/renderer/core/xml/xslt_processor.h b/third_party/blink/renderer/core/xml/xslt_processor.h
-index d53835e9675793e..2eaea31ed29b90f 100644
---- a/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor.h
-+++ b/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor.h
-@@ -79,7 +79,11 @@ class XSLTProcessor final : public Scrip
- 
-   void reset();
- 
-+#if LIBXML_VERSION >= 21200
-+  static void ParseErrorFunc(void* user_data, const xmlError*);
-+#else
-   static void ParseErrorFunc(void* user_data, xmlError*);
-+#endif
-   static void GenericErrorFunc(void* user_data, const char* msg, ...);
- 
-   // Only for libXSLT callbacks
-diff --git a/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc b/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc
-index 133e0b3355d2f09..f424077089da87d 100644
---- a/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc
-+++ b/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc
-@@ -60,7 +60,11 @@ void XSLTProcessor::GenericErrorFunc(voi
-   // It would be nice to do something with this error message.
- }
- 
-+#if LIBXML_VERSION >= 21200
-+void XSLTProcessor::ParseErrorFunc(void* user_data, const xmlError* error) {
-+#else
- void XSLTProcessor::ParseErrorFunc(void* user_data, xmlError* error) {
-+#endif
-   FrameConsole* console = static_cast<FrameConsole*>(user_data);
-   if (!console)
-     return;
diff --git a/srcpkgs/qt6-pdf/patches/pipewire-fcntl-call.patch b/srcpkgs/qt6-pdf/patches/pipewire-fcntl-call.patch
deleted file mode 100644
index a139a7e8a532ce..00000000000000
--- a/srcpkgs/qt6-pdf/patches/pipewire-fcntl-call.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Patch-Source: https://webrtc-review.googlesource.com/c/src/+/305120
---
-diff --git a/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc b/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc
-index 5878180..b2ad7ad 100644
---- a/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc
-+++ b/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc
-@@ -452,8 +452,8 @@
-     PipeWireThreadLoopLock thread_loop_lock(pw_main_loop_);
- 
-     if (fd >= 0) {
--      pw_core_ = pw_context_connect_fd(
--          pw_context_, fcntl(fd, F_DUPFD_CLOEXEC), nullptr, 0);
-+      pw_core_ = pw_context_connect_fd(
-+          pw_context_, fcntl(fd, F_DUPFD_CLOEXEC, 0), nullptr, 0);
-     } else {
-       pw_core_ = pw_context_connect(pw_context_, nullptr, 0);
-     }
-
diff --git a/srcpkgs/qt6-pdf/template b/srcpkgs/qt6-pdf/template
index ecda84afac1310..a7f61ea0b0aa5d 100644
--- a/srcpkgs/qt6-pdf/template
+++ b/srcpkgs/qt6-pdf/template
@@ -1,7 +1,7 @@
 # Template file for 'qt6-pdf'
 pkgname=qt6-pdf
-version=6.6.0
-revision=3
+version=6.7.2
+revision=1
 build_style=cmake
 configure_args="-DQT_FEATURE_qtpdf_build=ON
  -DQT_FEATURE_qtpdf_widgets_build=ON
@@ -10,7 +10,8 @@ configure_args="-DQT_FEATURE_qtpdf_build=ON
  -DQT_BUILD_EXAMPLES=ON"
 hostmakedepends="qt6-base-devel perl pkg-config nodejs python3-html5lib
  qt6-declarative-host-tools gperf bison flex nss-devel"
-makedepends="qt6-base-devel qt6-declarative-devel qt6-svg-devel zlib-devel
+makedepends="qt6-base-private-devel qt6-declarative-private-devel
+ qt6-svg-devel zlib-devel
  pciutils-devel opus-devel libxslt-devel libxml2-devel ffmpeg-devel
  lcms2-devel libwebp-devel icu-devel re2-devel snappy-devel libevent-devel
  libvpx-devel minizip-devel tiff-devel libpng-devel harfbuzz-devel
@@ -21,7 +22,7 @@ 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/official_releases/qt/${version%.*}/${version}/submodules/qtwebengine-everywhere-src-${version}.tar.xz"
-checksum=d5dc9ff05a2c57adbf99cbf0c7cb6f19527f67216caf627b0cc160a1d253b780
+checksum=c7755875594d8be382b07bf3634d44fd77012805794d8b588891709a6405ffd1
 
 if [ "$XBPS_LIBC" = "musl" ]; then
 	hostmakedepends+=" musl-legacy-compat"
@@ -62,6 +63,7 @@ if [ "$_have_webengine" = yes ]; then
 	 -DQT_FEATURE_webengine_system_libevent=ON
 	 -DQT_FEATURE_webengine_system_gn=ON
 	 -DQT_FEATURE_webengine_system_icu=ON
+	 -DQT_FEATURE_webengine_system_re2=ON
 	 -DQT_FEATURE_webengine_webrtc_pipewire=ON
 	 -DQT_FEATURE_webengine_embedded_build=OFF
 	 -DQT_FEATURE_webengine_proprietary_codecs=ON"
@@ -167,6 +169,8 @@ pre_install() {
 
 post_install() {
 	local _file
+	rm -rf "${DESTDIR}/usr/tests"
+	rm -f "${DESTDIR}/usr/lib/qt6/bin/testbrowser"
 	find "${DESTDIR}"/usr/lib/qt6/examples \
 		-path '*/lib/qt6/**/lib/qt6/*' -type f |
 	while read _file; do

From cf5d61162af1bb6a6767b202eed6423673b230ac Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:30 +0700
Subject: [PATCH 16/44] qt6-charts: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-charts/template b/srcpkgs/qt6-charts/template
index 4cd9fd60ed0220..3e42c4082ed5f9 100644
--- a/srcpkgs/qt6-charts/template
+++ b/srcpkgs/qt6-charts/template
@@ -1,16 +1,16 @@
 # Template file for 'qt6-charts'
 pkgname=qt6-charts
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-declarative-host-tools"
-makedepends="qt6-declarative-devel"
+makedepends="qt6-declarative-private-devel qt6-base-private-devel"
 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=e6beabcdc70c7719818459d2b2db63d7b0b5adc5572b8802368b698f64292cf5
+checksum=00f6a437458b7f2c4e81d748dbe2a077567a9e6ad8d8e3820b36c39dc5279bda
 
 pre_check() {
 	export QML2_IMPORT_PATH="$wrksrc/build/lib${XBPS_TARGET_WORDSIZE}/qt6/qml"

From 486765a2bf5e8864a9891b4276bf9545aa55ffb1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:31 +0700
Subject: [PATCH 17/44] qt6-connectivity: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-connectivity/template b/srcpkgs/qt6-connectivity/template
index 312291704dde25..a37892b61f2d9f 100644
--- a/srcpkgs/qt6-connectivity/template
+++ b/srcpkgs/qt6-connectivity/template
@@ -1,16 +1,22 @@
 # Template file for 'qt6-connectivity'
 pkgname=qt6-connectivity
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
-hostmakedepends="perl qt6-declarative-host-tools"
-makedepends="qt6-declarative-devel"
+configure_args="-DQT_FEATURE_pcsclite=ON"
+hostmakedepends="perl qt6-declarative-host-tools pkg-config"
+makedepends="qt6-declarative-private-devel libbluetooth-devel pcsclite-devel
+ qt6-base-private-devel"
 short_desc="Cross-platform application and UI framework - Connectivity"
 maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 license="GPL-3.0-only"
 homepage="https://qt.io/"
 distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtconnectivity-everywhere-src-${version}.tar.xz"
-checksum=1c29c26247c28ef19b9ca87c38b4d61a1f94ee9021897962e0d5ba215f1c4010
+checksum=8ed321b242f0e956473a295fa31670271f9b3acb797508644cb740f89f6c08e8
+
+do_check() {
+	ctest -E tst_qlowenergycontroller
+}
 
 qt6-connectivity-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision}

From e7b6dd088809e5aa952cd03693381d3a007e8104 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:31 +0700
Subject: [PATCH 18/44] qt6-imageformats: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-imageformats/template b/srcpkgs/qt6-imageformats/template
index f550107e80d0e1..5a6c89ee07084c 100644
--- a/srcpkgs/qt6-imageformats/template
+++ b/srcpkgs/qt6-imageformats/template
@@ -1,6 +1,6 @@
 # Template file for 'qt6-imageformats'
 pkgname=qt6-imageformats
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base"
@@ -10,4 +10,4 @@ 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=e1542cb50176e237809895c6549598c08587c63703d100be54ac2d806834e384
+checksum=e1a1d8785fae67d16ad0a443b01d5f32663a6b68d275f1806ebab257485ce5d6

From 77de3551ea856e3dbb6fd174c4cc444d6a306f99 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:31 +0700
Subject: [PATCH 19/44] qt6-location: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-location/template b/srcpkgs/qt6-location/template
index 985a82408e5e52..99708c66321a37 100644
--- a/srcpkgs/qt6-location/template
+++ b/srcpkgs/qt6-location/template
@@ -1,16 +1,17 @@
 # Template file for 'qt6-location'
 pkgname=qt6-location
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base qt6-declarative-host-tools"
-makedepends="qt6-serialport-devel qt6-declarative-devel qt6-position-devel"
+makedepends="qt6-serialport-devel qt6-declarative-private-devel qt6-position-devel
+ qt6-base-private-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/official_releases/qt/${version%.*}/${version}/submodules/qtlocation-everywhere-src-${version}.tar.xz"
-checksum=f5968be76108bf22af334b403027cf0a859284cb824250e728bb8daca2d70794
+checksum=f232da58bf1189b69f1f7029417ddfeffcfb801b275aedc720e38244f88a485d
 
 pre_check() {
 	export QML2_IMPORT_PATH="$wrksrc/build/lib${XBPS_TARGET_WORDSIZE}/qt6/qml"

From dd3b3c707d4aac2bb5f7f18e49c0f9a91a138f7b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:31 +0700
Subject: [PATCH 20/44] qt6-lottie: update to 6.7.2.

---
 srcpkgs/qt6-lottie-private-devel |  1 +
 srcpkgs/qt6-lottie/template      | 22 +++++++++++++++++++---
 2 files changed, 20 insertions(+), 3 deletions(-)
 create mode 120000 srcpkgs/qt6-lottie-private-devel

diff --git a/srcpkgs/qt6-lottie-private-devel b/srcpkgs/qt6-lottie-private-devel
new file mode 120000
index 00000000000000..ba915c5589b897
--- /dev/null
+++ b/srcpkgs/qt6-lottie-private-devel
@@ -0,0 +1 @@
+qt6-lottie
\ No newline at end of file
diff --git a/srcpkgs/qt6-lottie/template b/srcpkgs/qt6-lottie/template
index f5d8c3636e8914..8495153d4b5148 100644
--- a/srcpkgs/qt6-lottie/template
+++ b/srcpkgs/qt6-lottie/template
@@ -1,21 +1,23 @@
 # Template file for 'qt6-lottie'
 pkgname=qt6-lottie
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base qt6-declarative-host-tools"
-makedepends="qt6-declarative-devel"
+makedepends="qt6-declarative-private-devel qt6-base-private-devel"
 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=1d98b45107a4b9a6337bc7ac37b9e54cdaa68110f814d93eecc8fbf8d338f84f
+checksum=d9afbc9358d352a4e521d4693d5bdad6a004272b6e8a9ec7a9f851700fe3f10e
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args="-DQT_BUILD_TESTS=ON"
 fi
 
+subpackages="qt6-lottie-private-devel qt6-lottie-devel"
+
 pre_check() {
 	export QML2_IMPORT_PATH="$wrksrc/build/lib${XBPS_TARGET_WORDSIZE}/qt6/qml"
 }
@@ -24,6 +26,20 @@ post_install() {
 	rm -rf ${DESTDIR}/usr/tests
 }
 
+qt6-lottie-private-devel_package() {
+	depends="qt6-lottie-devel>=${version}_${revision}"
+	short_desc+=" - private development files"
+	pkg_install() {
+		for dir in $(cd ${DESTDIR} && find usr/include -type d -name private); do
+			vmove "$dir"
+		done
+		vmove "usr/lib/cmake/*Private"
+		vmove "usr/lib/qt6/metatypes/*private_*_metatypes.json"
+		vmove "usr/lib/qt6/mkspecs/modules/*_private.pri"
+		vmove "usr/lib/qt6/modules/*Private.json"
+	}
+}
+
 qt6-lottie-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision}"
 	short_desc+=" - development files"

From 22f282cddfcfb807a50dbeb64f7291fdfa9249af Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:31 +0700
Subject: [PATCH 21/44] qt6-networkauth: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-networkauth/template b/srcpkgs/qt6-networkauth/template
index 1bbd6b97803475..65f468da81df72 100644
--- a/srcpkgs/qt6-networkauth/template
+++ b/srcpkgs/qt6-networkauth/template
@@ -1,16 +1,16 @@
 # Template file for 'qt6-networkauth'
 pkgname=qt6-networkauth
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base"
-makedepends="qt6-base-devel qt6-plugin-networkinformation"
+makedepends="qt6-base-private-devel qt6-plugin-networkinformation"
 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=20d5c0746c00eb3333f17c9869296d0acd0eed93518ea2734b98405cc6cc8830
+checksum=7f09824fcfe589eb32260c305ff9a126fe3bf93be218d372e8e9c10e212df470
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args="-DQT_BUILD_TESTS=ON"

From f42cdbbd46d55e44da2855372afc500ac9873913 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:31 +0700
Subject: [PATCH 22/44] qt6-position: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-position/template b/srcpkgs/qt6-position/template
index 32c4093e1645dd..61e463e81dd05a 100644
--- a/srcpkgs/qt6-position/template
+++ b/srcpkgs/qt6-position/template
@@ -1,16 +1,17 @@
 # Template file for 'qt6-position'
 pkgname=qt6-position
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base qt6-declarative-host-tools"
-makedepends="qt6-serialport-devel qt6-declarative-devel"
+makedepends="qt6-serialport-devel qt6-declarative-private-devel
+ qt6-base-private-devel"
 short_desc="Cross-platform application and UI framework - position"
 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/qtpositioning-everywhere-src-${version}.tar.xz"
-checksum=8d6520fa3c759ed33eaea7cb1aa7e1e7ec999f828e496a6c592847d61f0fa539
+checksum=020009f0aa8f6b1042963a45b6e19f2784cc937949cdb673f3b876153e087b1c
 
 pre_check() {
 	export QML2_IMPORT_PATH="$wrksrc/build/lib${XBPS_TARGET_WORDSIZE}/qt6/qml"

From 931d57c3633fe4f5402a42c256dd2f0ffaab0ee8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:31 +0700
Subject: [PATCH 23/44] qt6-remoteobjects: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-remoteobjects/template b/srcpkgs/qt6-remoteobjects/template
index 51de5ebd7ab993..1f6aa61dc8831c 100644
--- a/srcpkgs/qt6-remoteobjects/template
+++ b/srcpkgs/qt6-remoteobjects/template
@@ -1,10 +1,11 @@
 # Template file for 'qt6-remoteobjects'
 pkgname=qt6-remoteobjects
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-declarative-host-tools pkg-config"
-makedepends="qt6-declarative-devel qt6-connectivity-devel"
+makedepends="qt6-declarative-private-devel qt6-connectivity-devel
+ qt6-base-private-devel"
 # Not a strict dependency, but it's 2022, everyone should use TLS
 depends="qt6-plugin-tls-openssl"
 checkdepends="$depends"
@@ -13,7 +14,7 @@ maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 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/qtremoteobjects-everywhere-src-${version}.tar.xz"
-checksum=261194e35bb9420225f095c58a5a549686797a3d2b7ea6f0d582d7d681f1f76b
+checksum=0b906b81aa7d6f4e47d4a298da67894433f3096a06f4c4237788c1b2cb9b7483
 
 if [ "$CROSS_BUILD" ]; then
 	hostmakedepends+=" qt6-remoteobjects"

From 5f91b6a9d0cd962ece5c0a49c97a2f4fafd6471b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:32 +0700
Subject: [PATCH 24/44] qt6-scxml: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-scxml/template b/srcpkgs/qt6-scxml/template
index 1aaca906de21f0..a5dfb1f85357de 100644
--- a/srcpkgs/qt6-scxml/template
+++ b/srcpkgs/qt6-scxml/template
@@ -1,20 +1,21 @@
 # Template file for 'qt6-scxml'
 pkgname=qt6-scxml
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
+configure_args="-DQT_FEATURE_scxml_ecmascriptdatamodel=ON"
 hostmakedepends="perl qt6-declarative-host-tools"
-makedepends="qt6-declarative-devel"
+makedepends="qt6-declarative-private-devel qt6-base-private-devel"
 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=57ecd0db5d8b063d0334c4b21461585b4904d4884c88de125bd72e967e8a1043
+checksum=20ecf93506d48f27b492ad3dd9d88830e08d642faec3071ce53396a8ae05c86f
 
 subpackages="qt6-scxml-tools qt6-scxml-devel"
 if [ "$CROSS_BUILD" ]; then
-	configure_args="-DQT_FORCE_BUILD_TOOLS=true"
+	configure_args+=" -DQT_FORCE_BUILD_TOOLS=true"
 	hostmakedepends+=" qt6-scxml-tools"
 fi
 

From 36ff4188ecd6fd12dc726abec96cb2651a9b3d7c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:32 +0700
Subject: [PATCH 25/44] qt6-sensors: update to 6.7.2.

---
 srcpkgs/qt6-sensors/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/qt6-sensors/template b/srcpkgs/qt6-sensors/template
index d835f29ca091be..8dbfd92079ba46 100644
--- a/srcpkgs/qt6-sensors/template
+++ b/srcpkgs/qt6-sensors/template
@@ -1,16 +1,16 @@
 # Template file for 'qt6-sensors'
 pkgname=qt6-sensors
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-declarative-host-tools pkg-config"
-makedepends="qt6-declarative-devel qt6-svg-devel"
+makedepends="qt6-declarative-private-devel qt6-svg-devel qt6-base-private-devel"
 short_desc="Cross-platform application and UI framework - Sensors"
 maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 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/qtsensors-everywhere-src-${version}.tar.xz"
-checksum=28f0be5d4eac103ba3bb660ea61806d0e193c1fab949d1c95f2cb7cb39d84498
+checksum=ead1dec787c56ed4dc02ed810af54ff1e1f6875cb5cc2506c74eeb9554e6bb59
 
 post_install() {
 	rm -rf ${DESTDIR}/usr/tests

From a5cdec57020ddcd3b9ef3fe233e3a67c254896fe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:32 +0700
Subject: [PATCH 26/44] qt6-serialport: update to 6.7.2.

---
 srcpkgs/qt6-serialport/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/qt6-serialport/template b/srcpkgs/qt6-serialport/template
index 5c802fe7a6e263..491e1463daa366 100644
--- a/srcpkgs/qt6-serialport/template
+++ b/srcpkgs/qt6-serialport/template
@@ -1,16 +1,16 @@
 # Template file for 'qt6-serialport'
 pkgname=qt6-serialport
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base pkg-config"
-makedepends="qt6-base-devel"
+makedepends="qt6-base-private-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/official_releases/qt/${version%.*}/${version}/submodules/qtserialport-everywhere-src-${version}.tar.xz"
-checksum=ecfcbbf1c47a67ff599a409bf7682fed416f797860c01c934f5a78c336da4065
+checksum=21c34cd1161cb5197bcec662d26a17647b59b6fdff5c364576883c42dbd3b4fc
 
 qt6-serialport-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision} qt6-base-devel>=${version}_1"

From 3e9d80fca96caa8e93df383dbb5fefc94f92bb2a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:32 +0700
Subject: [PATCH 27/44] qt6-speech: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-speech/template b/srcpkgs/qt6-speech/template
index 7596a055db5dbd..776995f2567c75 100644
--- a/srcpkgs/qt6-speech/template
+++ b/srcpkgs/qt6-speech/template
@@ -1,17 +1,17 @@
 # Template file for 'qt6-speech'
 pkgname=qt6-speech
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl pkg-config qt6-declarative-host-tools"
-makedepends="qt6-base-devel qt6-multimedia-devel qt6-declarative-devel
- flite-devel speech-dispatcher-devel alsa-lib-devel"
+makedepends="qt6-base-private-devel qt6-declarative-private-devel
+ qt6-multimedia-devel flite-devel speech-dispatcher-devel alsa-lib-devel"
 short_desc="Cross-platform application and UI framework (QT6) - Speech component"
 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://www.qt.io"
 distfiles="https://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtspeech-everywhere-src-${version}.tar.xz"
-checksum=969bdbff826808f0cfd80e8f2e357f00174489f30d9f895390cf59814abe9f9c
+checksum=cc8c769404e3e49713be304a73f936890a1ef2f88d590732785f34692a4814ce
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args="-DQT_BUILD_TESTS=ON"

From 81f409be25ba5cfa1acbcc317ad6a5c2a431fef4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:32 +0700
Subject: [PATCH 28/44] qt6-virtualkeyboard: update to 6.7.2.

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

diff --git a/srcpkgs/qt6-virtualkeyboard/template b/srcpkgs/qt6-virtualkeyboard/template
index f30ef911b70466..5f06025c759358 100644
--- a/srcpkgs/qt6-virtualkeyboard/template
+++ b/srcpkgs/qt6-virtualkeyboard/template
@@ -1,16 +1,17 @@
 # Template file for 'qt6-virtualkeyboard'
 pkgname=qt6-virtualkeyboard
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl pkg-config qt6-declarative-host-tools"
-makedepends="qt6-declarative-devel qt6-svg-devel hunspell-devel"
+makedepends="qt6-declarative-private-devel qt6-svg-devel hunspell-devel
+ qt6-base-private-devel"
 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=2784db43f514bfd3a2ce0e79e0096deea95a3866254d376a9134bc512bfa777b
+checksum=320664b55a0960ff79c1b822dcf6e8cebe3e08b791147d41b570996d81ce180f
 
 if [ "$XBPS_CHECK_PKGS" ]; then
 	configure_args="-DQT_BUILD_TESTS=ON"

From 69c8d2207aa7cbd6992d71f7e573d484258956fb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:32 +0700
Subject: [PATCH 29/44] qt6-websockets: update to 6.7.2.

---
 srcpkgs/qt6-websockets/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/qt6-websockets/template b/srcpkgs/qt6-websockets/template
index 176315c28772ad..4b816db33bfba7 100644
--- a/srcpkgs/qt6-websockets/template
+++ b/srcpkgs/qt6-websockets/template
@@ -1,10 +1,10 @@
 # Template file for 'qt6-websockets'
 pkgname=qt6-websockets
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt6-base qt6-declarative-host-tools"
-makedepends="qt6-base-devel qt6-declarative-devel"
+makedepends="qt6-base-private-devel qt6-declarative-private-devel"
 depends="qt6-plugin-tls-openssl"
 checkdepends="$depends"
 short_desc="Cross-platform application and UI framework - websockets"
@@ -12,7 +12,7 @@ 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/qtwebsockets-everywhere-src-${version}.tar.xz"
-checksum=2e05b15c0c6e82c484cf3a4a39a3e3e484a6c8f72bc31ee5cf615d52d07df30e
+checksum=5bde4af6ec9ce8c8632b782ab77b82d910721be2c714e6d38902521bcd1d215f
 
 do_check() {
 	cd build

From 12d9e2b9a3052d8d04483b66d0c1a3e9da9d82b5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:32 +0700
Subject: [PATCH 30/44] qt6-webview: update to 6.7.2.

---
 srcpkgs/qt6-webview/template | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/qt6-webview/template b/srcpkgs/qt6-webview/template
index cc2273052907be..abdfa65829429d 100644
--- a/srcpkgs/qt6-webview/template
+++ b/srcpkgs/qt6-webview/template
@@ -1,16 +1,20 @@
 # Template file for 'qt6-webview'
 pkgname=qt6-webview
-version=6.6.0
+version=6.7.2
 revision=1
 build_style=cmake
 hostmakedepends="qt6-base qt6-declarative-host-tools"
-makedepends="qt6-base-devel qt6-declarative-devel qt6-webengine-devel"
+makedepends="qt6-base-private-devel qt6-declarative-private-devel qt6-webengine-devel"
 short_desc="Cross-platform application and UI framework - WebView"
 maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 license="GPL-3.0-only, GPL-2.0-only, LGPL-3.0-only"
 homepage="https://www.qt.io"
 distfiles="https://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtwebview-everywhere-src-${version}.tar.xz"
-checksum=a5a48d9b5dfac60b66a737f844dc57de311de9d154fe10ccd8ec498506753392
+checksum=4ce1096903d4fec39bfcd95d4015acbf105eddf66a384303cb0fe899dd24e4fe
+
+if [ "$XBPS_WORDSIZE$XBPS_WORDSIZE" != "64$XBPS_TARGET_WORDSIZE" ]; then
+	broken="no qt6-webengine"
+fi
 
 qt6-webview-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision}"

From f3fa5ad4b04fae55d3a3a6981bb00f3473259182 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:33 +0700
Subject: [PATCH 31/44] python3-pyqt6: update to 6.7.0.

---
 ...nectivity-devel => python3-pyqt6-bindings} |   0
 srcpkgs/python3-pyqt6-core-devel              |   1 -
 srcpkgs/python3-pyqt6-dbus-devel              |   1 -
 srcpkgs/python3-pyqt6-declarative-devel       |   1 -
 srcpkgs/python3-pyqt6-gui-devel               |   1 -
 srcpkgs/python3-pyqt6-multimedia-devel        |   1 -
 srcpkgs/python3-pyqt6-network-devel           |   1 -
 srcpkgs/python3-pyqt6-opengl-widgets-devel    |   1 -
 srcpkgs/python3-pyqt6-pdf-devel               |   1 -
 srcpkgs/python3-pyqt6-position-devel          |   1 -
 srcpkgs/python3-pyqt6-printsupport-devel      |   1 -
 srcpkgs/python3-pyqt6-quick3d-devel           |   1 -
 srcpkgs/python3-pyqt6-remoteobjects-devel     |   1 -
 srcpkgs/python3-pyqt6-sensors-devel           |   1 -
 srcpkgs/python3-pyqt6-serialport-devel        |   1 -
 srcpkgs/python3-pyqt6-speech-devel            |   1 -
 srcpkgs/python3-pyqt6-sql-devel               |   1 -
 srcpkgs/python3-pyqt6-svg-devel               |   1 -
 srcpkgs/python3-pyqt6-test-devel              |   1 -
 srcpkgs/python3-pyqt6-tools-devel             |   1 -
 srcpkgs/python3-pyqt6-webchannel-devel        |   1 -
 srcpkgs/python3-pyqt6-websockets-devel        |   1 -
 srcpkgs/python3-pyqt6-widgets-devel           |   1 -
 srcpkgs/python3-pyqt6-xml-devel               |   1 -
 srcpkgs/python3-pyqt6/template                | 339 +++---------------
 25 files changed, 58 insertions(+), 304 deletions(-)
 rename srcpkgs/{python3-pyqt6-connectivity-devel => python3-pyqt6-bindings} (100%)
 delete mode 120000 srcpkgs/python3-pyqt6-core-devel
 delete mode 120000 srcpkgs/python3-pyqt6-dbus-devel
 delete mode 120000 srcpkgs/python3-pyqt6-declarative-devel
 delete mode 120000 srcpkgs/python3-pyqt6-gui-devel
 delete mode 120000 srcpkgs/python3-pyqt6-multimedia-devel
 delete mode 120000 srcpkgs/python3-pyqt6-network-devel
 delete mode 120000 srcpkgs/python3-pyqt6-opengl-widgets-devel
 delete mode 120000 srcpkgs/python3-pyqt6-pdf-devel
 delete mode 120000 srcpkgs/python3-pyqt6-position-devel
 delete mode 120000 srcpkgs/python3-pyqt6-printsupport-devel
 delete mode 120000 srcpkgs/python3-pyqt6-quick3d-devel
 delete mode 120000 srcpkgs/python3-pyqt6-remoteobjects-devel
 delete mode 120000 srcpkgs/python3-pyqt6-sensors-devel
 delete mode 120000 srcpkgs/python3-pyqt6-serialport-devel
 delete mode 120000 srcpkgs/python3-pyqt6-speech-devel
 delete mode 120000 srcpkgs/python3-pyqt6-sql-devel
 delete mode 120000 srcpkgs/python3-pyqt6-svg-devel
 delete mode 120000 srcpkgs/python3-pyqt6-test-devel
 delete mode 120000 srcpkgs/python3-pyqt6-tools-devel
 delete mode 120000 srcpkgs/python3-pyqt6-webchannel-devel
 delete mode 120000 srcpkgs/python3-pyqt6-websockets-devel
 delete mode 120000 srcpkgs/python3-pyqt6-widgets-devel
 delete mode 120000 srcpkgs/python3-pyqt6-xml-devel

diff --git a/srcpkgs/python3-pyqt6-connectivity-devel b/srcpkgs/python3-pyqt6-bindings
similarity index 100%
rename from srcpkgs/python3-pyqt6-connectivity-devel
rename to srcpkgs/python3-pyqt6-bindings
diff --git a/srcpkgs/python3-pyqt6-core-devel b/srcpkgs/python3-pyqt6-core-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-core-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-dbus-devel b/srcpkgs/python3-pyqt6-dbus-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-dbus-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-declarative-devel b/srcpkgs/python3-pyqt6-declarative-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-declarative-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-gui-devel b/srcpkgs/python3-pyqt6-gui-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-gui-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-multimedia-devel b/srcpkgs/python3-pyqt6-multimedia-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-multimedia-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-network-devel b/srcpkgs/python3-pyqt6-network-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-network-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-opengl-widgets-devel b/srcpkgs/python3-pyqt6-opengl-widgets-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-opengl-widgets-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-pdf-devel b/srcpkgs/python3-pyqt6-pdf-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-pdf-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-position-devel b/srcpkgs/python3-pyqt6-position-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-position-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-printsupport-devel b/srcpkgs/python3-pyqt6-printsupport-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-printsupport-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-quick3d-devel b/srcpkgs/python3-pyqt6-quick3d-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-quick3d-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-remoteobjects-devel b/srcpkgs/python3-pyqt6-remoteobjects-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-remoteobjects-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-sensors-devel b/srcpkgs/python3-pyqt6-sensors-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-sensors-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-serialport-devel b/srcpkgs/python3-pyqt6-serialport-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-serialport-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-speech-devel b/srcpkgs/python3-pyqt6-speech-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-speech-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-sql-devel b/srcpkgs/python3-pyqt6-sql-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-sql-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-svg-devel b/srcpkgs/python3-pyqt6-svg-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-svg-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-test-devel b/srcpkgs/python3-pyqt6-test-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-test-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-tools-devel b/srcpkgs/python3-pyqt6-tools-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-tools-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-webchannel-devel b/srcpkgs/python3-pyqt6-webchannel-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-webchannel-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-websockets-devel b/srcpkgs/python3-pyqt6-websockets-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-websockets-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-widgets-devel b/srcpkgs/python3-pyqt6-widgets-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-widgets-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6-xml-devel b/srcpkgs/python3-pyqt6-xml-devel
deleted file mode 120000
index dd603d682349ff..00000000000000
--- a/srcpkgs/python3-pyqt6-xml-devel
+++ /dev/null
@@ -1 +0,0 @@
-python3-pyqt6
\ No newline at end of file
diff --git a/srcpkgs/python3-pyqt6/template b/srcpkgs/python3-pyqt6/template
index 151ba6a554ed7b..de4fbdf91b1a59 100644
--- a/srcpkgs/python3-pyqt6/template
+++ b/srcpkgs/python3-pyqt6/template
@@ -1,10 +1,11 @@
 # Template file for 'python3-pyqt6'
 pkgname=python3-pyqt6
-version=6.6.1
-revision=2
+version=6.7.0
+revision=1
 build_style=sip-build
 build_helper=qemu
-configure_args="--confirm-license --dbus $XBPS_CROSS_BASE/usr/include/dbus-1.0"
+configure_args="--confirm-license --dbus $XBPS_CROSS_BASE/usr/include/dbus-1.0
+ --verbose"
 hostmakedepends="qt6-base python3-dbus python3-PyQt-builder pkg-config"
 makedepends="qt6-base-devel qt6-declarative-devel qt6-tools-devel
  qt6-webchannel-devel qt6-multimedia-devel qt6-location-devel
@@ -17,33 +18,33 @@ maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 license="GPL-3.0-only"
 homepage="https://www.riverbankcomputing.com/software/pyqt/"
 distfiles="$PYPI_SITE/P/PyQt6/PyQt6-$version.tar.gz"
-checksum=9f158aa29d205142c56f0f35d07784b8df0be28378d20a97bcda8bd64ffd0379
+checksum=3d31b2c59dc378ee26e16586d9469842483588142fc377280aad22aaf2fa6235
 lib32disabled=yes
 
-subpackages="python3-pyqt6-core-devel
+subpackages="python3-pyqt6-bindings
  python3-pyqt6-devel python3-pyqt6-devel-tools
- python3-pyqt6-connectivity python3-pyqt6-connectivity-devel
- python3-pyqt6-dbus python3-pyqt6-dbus-devel
- python3-pyqt6-declarative python3-pyqt6-declarative-devel
- python3-pyqt6-gui python3-pyqt6-gui-devel
- python3-pyqt6-multimedia python3-pyqt6-multimedia-devel
- python3-pyqt6-network python3-pyqt6-network-devel
- python3-pyqt6-opengl-widgets python3-pyqt6-opengl-widgets-devel
- python3-pyqt6-position python3-pyqt6-position-devel
- python3-pyqt6-printsupport python3-pyqt6-printsupport-devel
- python3-pyqt6-quick3d python3-pyqt6-quick3d-devel
- python3-pyqt6-remoteobjects python3-pyqt6-remoteobjects-devel
- python3-pyqt6-sensors python3-pyqt6-sensors-devel
- python3-pyqt6-serialport python3-pyqt6-serialport-devel
- python3-pyqt6-speech python3-pyqt6-speech-devel
- python3-pyqt6-sql python3-pyqt6-sql-devel
- python3-pyqt6-svg python3-pyqt6-svg-devel
- python3-pyqt6-test python3-pyqt6-test-devel
- python3-pyqt6-tools python3-pyqt6-tools-devel
- python3-pyqt6-websockets python3-pyqt6-websockets-devel
- python3-pyqt6-webchannel python3-pyqt6-webchannel-devel
- python3-pyqt6-widgets python3-pyqt6-widgets-devel
- python3-pyqt6-xml python3-pyqt6-xml-devel
+ python3-pyqt6-connectivity
+ python3-pyqt6-dbus
+ python3-pyqt6-declarative
+ python3-pyqt6-gui
+ python3-pyqt6-multimedia
+ python3-pyqt6-network
+ python3-pyqt6-opengl-widgets
+ python3-pyqt6-position
+ python3-pyqt6-printsupport
+ python3-pyqt6-quick3d
+ python3-pyqt6-remoteobjects
+ python3-pyqt6-sensors
+ python3-pyqt6-serialport
+ python3-pyqt6-speech
+ python3-pyqt6-sql
+ python3-pyqt6-svg
+ python3-pyqt6-test
+ python3-pyqt6-tools
+ python3-pyqt6-websockets
+ python3-pyqt6-webchannel
+ python3-pyqt6-widgets
+ python3-pyqt6-xml
  "
 
 case "$XBPS_TARGET_MACHINE" in
@@ -52,18 +53,42 @@ case "$XBPS_TARGET_MACHINE" in
 	armv5* | armv6*) ;;
 	*)
 		makedepends+=" qt6-pdf-devel"
-		subpackages+=" python3-pyqt6-pdf python3-pyqt6-pdf-devel"
+		subpackages+=" python3-pyqt6-pdf"
 		;;
 esac
 # Split like qt6, but keep qt6-core in main pkg
 
-python3-pyqt6-core-devel_package() {
-	lib32disabled=yes
+python3-pyqt6-bindings_package() {
+	lib32disabled=yes
+	replaces="python3-pyqt6-core-devel
+	 python3-pyqt6-connectivity-devel
+	 python3-pyqt6-dbus-devel
+	 python3-pyqt6-declarative-devel
+	 python3-pyqt6-gui-devel
+	 python3-pyqt6-multimedia-devel
+	 python3-pyqt6-network-devel
+	 python3-pyqt6-opengl-widgets-devel
+	 python3-pyqt6-pdf-devel
+	 python3-pyqt6-position-devel
+	 python3-pyqt6-printsupport-devel
+	 python3-pyqt6-quick3d-devel
+	 python3-pyqt6-remoteobjects-devel
+	 python3-pyqt6-sensors-devel
+	 python3-pyqt6-serialport-devel
+	 python3-pyqt6-speech-devel
+	 python3-pyqt6-sql-devel
+	 python3-pyqt6-svg-devel
+	 python3-pyqt6-test-devel
+	 python3-pyqt6-tools-devel
+	 python3-pyqt6-websockets-devel
+	 python3-pyqt6-webchannel-devel
+	 python3-pyqt6-widgets-devel
+	 python3-pyqt6-xml-devel"
 	depends="${sourcepkg}>=${version}_${revision}
 	 qt6-base-devel python3-devel sip"
-	short_desc="${short_desc} - core development files"
+	short_desc="${short_desc} - SIP bindings"
 	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtCore"
+		vmove "${py3_sitelib}/PyQt6/bindings"
 	}
 }
 
@@ -77,16 +102,6 @@ python3-pyqt6-dbus_package() {
 	}
 }
 
-python3-pyqt6-dbus-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-dbus>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}"
-	short_desc="${short_desc} - DBus - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtDBus"
-	}
-}
-
 python3-pyqt6-tools_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -98,17 +113,6 @@ python3-pyqt6-tools_package() {
 	}
 }
 
-python3-pyqt6-tools-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-tools>=${version}_${revision} qt6-tools-devel
-	 python3-pyqt6-widgets-devel>=${version}_${revision}"
-	short_desc="${short_desc} - Tools - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtDesigner"
-		vmove "${py3_sitelib}/PyQt6/bindings/QtHelp"
-	}
-}
-
 python3-pyqt6-gui_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -119,17 +123,6 @@ python3-pyqt6-gui_package() {
 	}
 }
 
-python3-pyqt6-gui-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-gui>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}"
-	short_desc="${short_desc} - GUI - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtGui"
-		vmove "${py3_sitelib}/PyQt6/bindings/QtOpenGL"
-	}
-}
-
 python3-pyqt6-network_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -139,16 +132,6 @@ python3-pyqt6-network_package() {
 	}
 }
 
-python3-pyqt6-network-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-network>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}"
-	short_desc="${short_desc} - Network"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtNetwork"
-	}
-}
-
 python3-pyqt6-opengl-widgets_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -158,16 +141,6 @@ python3-pyqt6-opengl-widgets_package() {
 	}
 }
 
-python3-pyqt6-opengl-widgets-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-opengl-widgets>=${version}_${revision}
-	 python3-pyqt6-widgets-devel>=${version}_${revision}"
-	short_desc="${short_desc} - OpenGL Widgets - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtOpenGLWidgets"
-	}
-}
-
 python3-pyqt6-printsupport_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -177,16 +150,6 @@ python3-pyqt6-printsupport_package() {
 	}
 }
 
-python3-pyqt6-printsupport-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-printsupport>=${version}_${revision}
-	 python3-pyqt6-widgets-devel>=${version}_${revision}"
-	short_desc="${short_desc} - Print Support - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtPrintSupport"
-	}
-}
-
 python3-pyqt6-declarative_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -199,18 +162,6 @@ python3-pyqt6-declarative_package() {
 	}
 }
 
-python3-pyqt6-declarative-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-declarative>=${version}_${revision}
-	 qt6-declarative-devel python3-pyqt6-widgets-devel>=${version}_${revision}"
-	short_desc="${short_desc} - Declarative - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtQml"
-		vmove "${py3_sitelib}/PyQt6/bindings/QtQuick"
-		vmove "${py3_sitelib}/PyQt6/bindings/QtQuickWidgets"
-	}
-}
-
 python3-pyqt6-quick3d_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -220,16 +171,6 @@ python3-pyqt6-quick3d_package() {
 	}
 }
 
-python3-pyqt6-quick3d-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-quick3d>=${version}_${revision} qt6-quick3d-devel
-	 python3-pyqt6-declarative-devel>=${version}_${revision}"
-	short_desc="${short_desc} - Quick3D - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtQuick3D"
-	}
-}
-
 python3-pyqt6-sql_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -239,16 +180,6 @@ python3-pyqt6-sql_package() {
 	}
 }
 
-python3-pyqt6-sql-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-sql>=${version}_${revision}
-	 python3-pyqt6-widgets-devel>=${version}_${revision}"
-	short_desc="${short_desc} - SQL - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtSql"
-	}
-}
-
 python3-pyqt6-svg_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -259,17 +190,6 @@ python3-pyqt6-svg_package() {
 	}
 }
 
-python3-pyqt6-svg-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-svg>=${version}_${revision} qt6-svg-devel
-	 python3-pyqt6-widgets-devel>=${version}_${revision}"
-	short_desc="${short_desc} - svg - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtSvg"
-		vmove "${py3_sitelib}/PyQt6/bindings/QtSvgWidgets"
-	}
-}
-
 python3-pyqt6-test_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -279,16 +199,6 @@ python3-pyqt6-test_package() {
 	}
 }
 
-python3-pyqt6-test-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-test>=${version}_${revision}
-	 python3-pyqt6-widgets-devel>=${version}_${revision}"
-	short_desc="${short_desc} - Test - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtTest"
-	}
-}
-
 python3-pyqt6-widgets_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -298,16 +208,6 @@ python3-pyqt6-widgets_package() {
 	}
 }
 
-python3-pyqt6-widgets-devel_package() {
-	lib32disabled=yes
-	depends="python3-pyqt6-widgets>=${version}_${revision}
-	 python3-pyqt6-gui-devel>=${version}_${revision}"
-	short_desc="${short_desc} - Widgets"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtWidgets"
-	}
-}
-
 python3-pyqt6-xml_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -317,16 +217,6 @@ python3-pyqt6-xml_package() {
 	}
 }
 
-python3-pyqt6-xml-devel_package() {
-	lib32disabled=yes
-	depends="${sourcepkg}>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}"
-	short_desc="${short_desc} - Xml - development files"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtXml"
-	}
-}
-
 python3-pyqt6-devel-tools_package() {
 	lib32disabled=yes
 	depends="${sourcepkg}>=${version}_${revision}"
@@ -341,7 +231,7 @@ python3-pyqt6-devel-tools_package() {
 python3-pyqt6-devel_package() {
 	lib32disabled=yes
 	build_style=meta
-	depends="${subpackages/python3-pyqt6-devel /}"
+	depends="python3-pyqt6-devel-tools python3-pyqt6-bindings"
 	short_desc="${short_desc} - development files"
 }
 
@@ -354,17 +244,6 @@ python3-pyqt6-websockets_package() {
 	}
 }
 
-python3-pyqt6-websockets-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - WebSockets - development files"
-	depends="python3-pyqt6-websockets>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-websockets-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtWebSockets"
-	}
-}
-
 python3-pyqt6-webchannel_package() {
 	lib32disabled=yes
 	short_desc+=" - WebChannel"
@@ -374,17 +253,6 @@ python3-pyqt6-webchannel_package() {
 	}
 }
 
-python3-pyqt6-webchannel-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - WebChannel - development files"
-	depends="python3-pyqt6-webchannel>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-webchannel-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtWebChannel"
-	}
-}
-
 python3-pyqt6-multimedia_package() {
 	lib32disabled=yes
 	short_desc+=" - Multimedia"
@@ -395,18 +263,6 @@ python3-pyqt6-multimedia_package() {
 	}
 }
 
-python3-pyqt6-multimedia-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - Multimedia - development files"
-	depends="python3-pyqt6-multimedia>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-multimedia-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtMultimedia*"
-		vmove "${py3_sitelib}/PyQt6/bindings/QtSpatialAudio*"
-	}
-}
-
 python3-pyqt6-position_package() {
 	lib32disabled=yes
 	short_desc+=" - Position"
@@ -416,17 +272,6 @@ python3-pyqt6-position_package() {
 	}
 }
 
-python3-pyqt6-position-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - Position - development files"
-	depends="python3-pyqt6-position>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-location-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtPositioning"
-	}
-}
-
 python3-pyqt6-remoteobjects_package() {
 	lib32disabled=yes
 	short_desc+=" - RemoteObjects"
@@ -436,17 +281,6 @@ python3-pyqt6-remoteobjects_package() {
 	}
 }
 
-python3-pyqt6-remoteobjects-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - RemoteObjects - development files"
-	depends="python3-pyqt6-remoteobjects>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-remoteobjects-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtRemoteObjects"
-	}
-}
-
 python3-pyqt6-sensors_package() {
 	lib32disabled=yes
 	short_desc+=" - Sensors"
@@ -456,17 +290,6 @@ python3-pyqt6-sensors_package() {
 	}
 }
 
-python3-pyqt6-sensors-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - Sensors - development files"
-	depends="python3-pyqt6-sensors>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-sensors-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtSensors"
-	}
-}
-
 python3-pyqt6-serialport_package() {
 	lib32disabled=yes
 	short_desc+=" - SerialPort"
@@ -476,17 +299,6 @@ python3-pyqt6-serialport_package() {
 	}
 }
 
-python3-pyqt6-serialport-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - SerialPort - development files"
-	depends="python3-pyqt6-serialport>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-serialport-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtSerialPort"
-	}
-}
-
 python3-pyqt6-connectivity_package() {
 	lib32disabled=yes
 	short_desc+=" - Connectivity"
@@ -497,18 +309,6 @@ python3-pyqt6-connectivity_package() {
 	}
 }
 
-python3-pyqt6-connectivity-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - Connectivity - development files"
-	depends="python3-pyqt6-connectivity>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-connectivity-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtBluetooth"
-		vmove "${py3_sitelib}/PyQt6/bindings/QtNfc"
-	}
-}
-
 python3-pyqt6-pdf_package() {
 	lib32disabled=yes
 	short_desc+=" - Pdf"
@@ -519,18 +319,6 @@ python3-pyqt6-pdf_package() {
 	}
 }
 
-python3-pyqt6-pdf-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - Pdf - development files"
-	depends="python3-pyqt6-pdf>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-pdf-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtPdf"
-		vmove "${py3_sitelib}/PyQt6/bindings/QtPdfWidgets"
-	}
-}
-
 python3-pyqt6-speech_package() {
 	lib32disabled=yes
 	short_desc+=" - Speech"
@@ -539,14 +327,3 @@ python3-pyqt6-speech_package() {
 		vmove "${py3_sitelib}/PyQt6/QtTextToSpeech.*"
 	}
 }
-
-python3-pyqt6-speech-devel_package() {
-	lib32disabled=yes
-	short_desc+=" - Speech - development files"
-	depends="python3-pyqt6-speech>=${version}_${revision}
-	 python3-pyqt6-core-devel>=${version}_${revision}
-	 qt6-speech-devel"
-	pkg_install() {
-		vmove "${py3_sitelib}/PyQt6/bindings/QtTextToSpeech"
-	}
-}

From 9266fa99b0f40c9d29ff598a041b1176b91d439c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:33 +0700
Subject: [PATCH 32/44] python3-pyqt6-3d: update to 6.7.0.

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

diff --git a/srcpkgs/python3-pyqt6-3d/template b/srcpkgs/python3-pyqt6-3d/template
index f3a0488a4eea65..e60a51397d710c 100644
--- a/srcpkgs/python3-pyqt6-3d/template
+++ b/srcpkgs/python3-pyqt6-3d/template
@@ -1,18 +1,18 @@
 # Template file for 'python3-pyqt6-3d'
 pkgname=python3-pyqt6-3d
-version=6.6.0
-revision=2
+version=6.7.0
+revision=1
 build_style=sip-build
 build_helper="python3"
 hostmakedepends="qt6-base python3-PyQt-builder pkg-config"
-makedepends="python3-pyqt6-gui-devel qt6-3d-devel"
+makedepends="python3-pyqt6-bindings qt6-3d-devel"
 depends="python3-pyqt6"
 short_desc="Qt6 bindings for 3D - Python 3"
 maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 license="GPL-3.0-only"
 homepage="https://www.riverbankcomputing.com/software/pyqt3d/"
 distfiles="$PYPI_SITE/P/PyQt6-3D/PyQt6_3D-${version}.tar.gz"
-checksum=372b206eb8185f2b6ff048629d3296cb137c9e5901b113119ffa46a317726988
+checksum=3e99bfc801918ab4758dd2660b2d2358e0057c943eb2bd9f8d0ddf156ea5ccd7
 lib32disabled=yes
 
 python3-pyqt6-3d-devel_package() {

From 7b4af08d521044188963de301aac79d86f7b2df7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:33 +0700
Subject: [PATCH 33/44] python3-pyqt6-charts: update to 6.7.0.

---
 srcpkgs/python3-pyqt6-charts/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/python3-pyqt6-charts/template b/srcpkgs/python3-pyqt6-charts/template
index 778988af97212a..a775d616975f1a 100644
--- a/srcpkgs/python3-pyqt6-charts/template
+++ b/srcpkgs/python3-pyqt6-charts/template
@@ -1,7 +1,7 @@
 # Template file for 'python3-pyqt6-charts'
 pkgname=python3-pyqt6-charts
-version=6.6.0
-revision=2
+version=6.7.0
+revision=1
 build_style=sip-build
 build_helper="python3"
 hostmakedepends="qt6-base python3-PyQt-builder pkg-config"
@@ -12,7 +12,7 @@ maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 license="GPL-3.0-only"
 homepage="https://www.riverbankcomputing.com/software/pyqtchart/"
 distfiles="$PYPI_SITE/P/PyQt6-Charts/PyQt6_Charts-${version}.tar.gz"
-checksum=14cc6e5d19cae80129524a42fa6332d0d5dada4282a9423425e6b9ae1b6bc56d
+checksum=c4f7cf369928f7bf032e4e33f718d3b8fe66da176d4959fe30735a970d86f35c
 lib32disabled=yes
 
 python3-pyqt6-charts-devel_package() {

From c4d7cc5d9a48c15f5719aa01634e642ceadcdf5e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:33 +0700
Subject: [PATCH 34/44] python3-pyqt6-networkauth: update to 6.7.0.

---
 srcpkgs/python3-pyqt6-charts/template      | 2 +-
 srcpkgs/python3-pyqt6-networkauth/template | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/python3-pyqt6-charts/template b/srcpkgs/python3-pyqt6-charts/template
index a775d616975f1a..eee424dc7efce4 100644
--- a/srcpkgs/python3-pyqt6-charts/template
+++ b/srcpkgs/python3-pyqt6-charts/template
@@ -5,7 +5,7 @@ revision=1
 build_style=sip-build
 build_helper="python3"
 hostmakedepends="qt6-base python3-PyQt-builder pkg-config"
-makedepends="qt6-charts-devel python3-pyqt6-widgets-devel"
+makedepends="qt6-charts-devel python3-pyqt6-bindings"
 depends="python3-pyqt6"
 short_desc="Qt6 bindings for Charts - Python 3"
 maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
diff --git a/srcpkgs/python3-pyqt6-networkauth/template b/srcpkgs/python3-pyqt6-networkauth/template
index 95010578bf61e2..f4ece09899425a 100644
--- a/srcpkgs/python3-pyqt6-networkauth/template
+++ b/srcpkgs/python3-pyqt6-networkauth/template
@@ -1,18 +1,18 @@
 # Template file for 'python3-pyqt6-networkauth'
 pkgname=python3-pyqt6-networkauth
-version=6.6.0
-revision=2
+version=6.7.0
+revision=1
 build_style=sip-build
 build_helper="python3"
 hostmakedepends="qt6-base python3-PyQt-builder pkg-config"
-makedepends="python3-pyqt6-network-devel qt6-networkauth-devel"
+makedepends="python3-pyqt6-bindings qt6-networkauth-devel"
 depends="python3-pyqt6"
 short_desc="Qt6 bindings for NetworkAuth - Python 3"
 maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 license="GPL-3.0-only"
 homepage="https://www.riverbankcomputing.com/software/pyqtnetworkauth/"
 distfiles="$PYPI_SITE/P/PyQt6-NetworkAuth/PyQt6_NetworkAuth-${version}.tar.gz"
-checksum=cdfc0bfaea16a9e09f075bdafefb996aa9fdec392052ba4fb3cbac233c1958fb
+checksum=974983525437633a0f016c0ffa0dc311847089f253dfe6840b0ec8ce21dc8685
 lib32disabled=yes
 
 python3-pyqt6-networkauth-devel_package() {

From 5417c75b42943dc4cfd645b7eadbdbaa1c4e86a5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:33 +0700
Subject: [PATCH 35/44] python3-pyqt6-webengine: update to 6.7.0.

---
 srcpkgs/python3-pyqt6-webengine/template | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/python3-pyqt6-webengine/template b/srcpkgs/python3-pyqt6-webengine/template
index 793b3372d032ab..5d718db6c023c7 100644
--- a/srcpkgs/python3-pyqt6-webengine/template
+++ b/srcpkgs/python3-pyqt6-webengine/template
@@ -1,21 +1,18 @@
 # Template file for 'python3-pyqt6-webengine'
 pkgname=python3-pyqt6-webengine
-version=6.6.0
-revision=2
+version=6.7.0
+revision=1
 build_style=sip-build
 build_helper=python3
 hostmakedepends="qt6-base python3-PyQt-builder pkg-config"
-makedepends="python3-pyqt6-gui-devel qt6-webengine-devel
- python3-pyqt6-network-devel python3-pyqt6-webchannel-devel
- python3-pyqt6-declarative-devel python3-pyqt6-printsupport-devel
- python3-pyqt6-widgets-devel"
+makedepends="qt6-webengine-devel qt6-webchannel-devel python3-pyqt6-bindings"
 depends="python3-pyqt6"
 short_desc="Python 3 bindings for Qt6 - WebEngine"
 maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 license="GPL-3.0-or-later"
 homepage="https://www.riverbankcomputing.com/software/pyqtwebengine/"
 distfiles="$PYPI_SITE/P/PyQt6_WebEngine/PyQt6_WebEngine-$version.tar.gz"
-checksum=d50b984c3f85e409e692b156132721522d4e8cf9b6c25e0cf927eea2dfb39487
+checksum=68edc7adb6d9e275f5de956881e79cca0d71fad439abeaa10d823bff5ac55001
 lib32disabled=yes
 
 case "$XBPS_TARGET_MACHINE" in

From 578129a5275a9114963c7a85cba2e147b2493231 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:33 +0700
Subject: [PATCH 36/44] qt6ct: for qt6-6.7

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

diff --git a/srcpkgs/qt6ct/template b/srcpkgs/qt6ct/template
index 3b0d91b37474be..16903858d17284 100644
--- a/srcpkgs/qt6ct/template
+++ b/srcpkgs/qt6ct/template
@@ -1,10 +1,10 @@
 # Template file for 'qt6ct'
 pkgname=qt6ct
 version=0.9
-revision=1
+revision=2
 build_style=cmake
 hostmakedepends="qt6-tools qt6-base"
-makedepends="qt6-base-devel"
+makedepends="qt6-base-private-devel"
 depends="qt6-svg"
 short_desc="Qt6 Configuration Tool"
 maintainer="Adam Pschorr <adampschorr13@aol.com>"

From 1a4e6d745f5c72b99980ccdfaf6deca384540ed6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:33 +0700
Subject: [PATCH 37/44] libqtxdg: for qt6-6.7

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

diff --git a/srcpkgs/libqtxdg/template b/srcpkgs/libqtxdg/template
index fd37e6374bac52..bb3d6c5a949c7a 100644
--- a/srcpkgs/libqtxdg/template
+++ b/srcpkgs/libqtxdg/template
@@ -1,10 +1,10 @@
 # Template file for 'libqtxdg'
 pkgname=libqtxdg
 version=4.0.0
-revision=1
+revision=2
 build_style=cmake
 hostmakedepends="pkg-config lxqt-build-tools qt6-base"
-makedepends="qt6-base qt6-svg-devel libglib-devel"
+makedepends="qt6-base-private-devel qt6-svg-devel libglib-devel"
 short_desc="Qt implementation of freedesktop.org XDG specifications"
 maintainer="Helmut Pozimski <helmut@pozimski.eu>"
 license="LGPL-2.1-or-later"

From 990cda851d7d1b84ddedafc56f69f62e70f8c6e1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:33 +0700
Subject: [PATCH 38/44] kdeconnect: enable bluetooth

---
 srcpkgs/kdeconnect/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/kdeconnect/template b/srcpkgs/kdeconnect/template
index 514ae5a7733877..1d8495ed15471d 100644
--- a/srcpkgs/kdeconnect/template
+++ b/srcpkgs/kdeconnect/template
@@ -1,10 +1,10 @@
 # Template file for 'kdeconnect'
 pkgname=kdeconnect
 version=24.05.0
-revision=2
+revision=3
 build_style=cmake
 configure_args="-DWaylandScanner_EXECUTABLE=/usr/bin/wayland-scanner
- -DKDE_INSTALL_QMLDIR=lib/qt6/qml
+ -DKDE_INSTALL_QMLDIR=lib/qt6/qml -DBLUETOOTH_ENABLED=ON
  -DKF6_HOST_TOOLING=/usr/lib/cmake -DKDE_INSTALL_QTPLUGINDIR=lib/qt6/plugins"
 hostmakedepends="extra-cmake-modules qt6-tools
  pkg-config wayland-devel qt6-base python3 kf6-kdoctools kf6-kpackage kf6-kconfig
@@ -15,7 +15,7 @@ makedepends="kf6-kcmutils-devel kf6-kconfigwidgets-devel kf6-kdbusaddons-devel
  kf6-kirigami-devel kf6-knotifications-devel kf6-kstatusnotifieritem-devel
  kf6-kservice-devel kf6-qqc2-desktop-style-devel kf6-modemmanager-qt-devel
  kf6-kpackage-devel kf6-kpeople-devel kf6-kwayland-devel
- libfakekey-devel qca-qt6-devel pulseaudio-qt-devel qt6-base-devel
+ libfakekey-devel qca-qt6-devel pulseaudio-qt-devel qt6-base-private-devel
  qt6-connectivity-devel qt6-multimedia-devel kirigami-addons-devel"
 depends="kde-cli-tools qca-qt6 fuse-sshfs kf6-kirigami kf6-qqc2-desktop-style
  breeze-icons kirigami-addons qt6-plugin-tls-openssl"

From f25a72b0f8d88d6ac6c02ad81012a4fc9dd789de Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:34 +0700
Subject: [PATCH 39/44] calibre: fix build after pyqt6 restructure

---
 srcpkgs/calibre/template | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/srcpkgs/calibre/template b/srcpkgs/calibre/template
index b0302c2f9f247e..7907f71b18184e 100644
--- a/srcpkgs/calibre/template
+++ b/srcpkgs/calibre/template
@@ -6,6 +6,7 @@ build_helper=python3
 pycompile_dirs="/usr/lib/calibre/"
 hostmakedepends="pkg-config cmake python3-BeautifulSoup4 python3-Pillow
  python3-apsw python3-css-parser python3-dateutil sip qt6-base python3-py7zr
+ python3-pyqt6-devel-tools
  python3-html5-parser python3-msgpack python3-regex python3-mechanize
  mathjax liberation-fonts-ttf python3-zeroconf xdg-utils rapydscript-ng
  python3-PyQt-builder python3-Markdown python3-xxhash"
@@ -13,7 +14,9 @@ makedepends="libinput-devel libmagick-devel libmtp-devel libstemmer-devel
  libpodofo-devel libwmf-devel libxkbcommon-devel poppler-cpp-devel
  freetype-devel uchardet-devel openssl-devel icu-devel libusb-devel
  sqlite-devel tslib-devel hunspell-devel hyphen-devel libstemmer-devel
- python3-pyqt6-devel python3-pyqt6-webengine-devel"
+ python3-pyqt6-gui python3-pyqt6-svg python3-pyqt6-widgets python3-pyqt6-network
+ python3-pyqt6-printsupport python3-pyqt6-webengine python3-pyqt6-webchannel
+ qt6-base-private-devel python3-pyqt6-bindings python3-pyqt6-webengine-devel"
 depends="desktop-file-utils optipng poppler python3-BeautifulSoup4
  qt6-imageformats python3-Pygments python3-pycryptodome python3-xxhash
  python3-Markdown python3-Pillow python3-zeroconf python3-Pygments python3-apsw

From 13accceb303ac5456fda08f7e8db96f2c8333e80 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:34 +0700
Subject: [PATCH 40/44] kf6-akonadi: for qt6-6.7

---
 srcpkgs/kf6-akonadi/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/kf6-akonadi/template b/srcpkgs/kf6-akonadi/template
index 75416c5d77d8d2..020dd9872cff24 100644
--- a/srcpkgs/kf6-akonadi/template
+++ b/srcpkgs/kf6-akonadi/template
@@ -1,7 +1,7 @@
 # Template file for 'kf6-akonadi'
 pkgname=kf6-akonadi
 version=24.02.2
-revision=2
+revision=3
 build_style=cmake
 build_helper="qemu"
 configure_args="-DKF6_HOST_TOOLING=/usr/lib/cmake

From 8d338a806b1ec3ad1f7d8a7fcfb735fbe8e987cb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:34 +0700
Subject: [PATCH 41/44] gpgme-qt6: for qt6-6.7

---
 srcpkgs/gpgme-qt6/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/gpgme-qt6/template b/srcpkgs/gpgme-qt6/template
index 628813a074f4d8..641b656910634e 100644
--- a/srcpkgs/gpgme-qt6/template
+++ b/srcpkgs/gpgme-qt6/template
@@ -7,7 +7,7 @@
 #          -> colord -> sane -> poppler -> gpgme -> qt5 -> SDL2
 pkgname=gpgme-qt6
 version=1.23.2
-revision=4
+revision=5
 build_style=gnu-configure
 configure_args="--enable-fd-passing
  --with-libgpg-error-prefix=$XBPS_CROSS_BASE/usr

From ee2c9510ce76d9d1c39e851a1e8d4e686e52b814 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:34 +0700
Subject: [PATCH 42/44] kf6-kdeclarative: for qt6-6.7

---
 srcpkgs/kf6-kdeclarative/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/kf6-kdeclarative/template b/srcpkgs/kf6-kdeclarative/template
index 4270df46f26c5d..0ab17595d8b6d3 100644
--- a/srcpkgs/kf6-kdeclarative/template
+++ b/srcpkgs/kf6-kdeclarative/template
@@ -1,7 +1,7 @@
 # Template file for 'kf6-kdeclarative'
 pkgname=kf6-kdeclarative
 version=6.3.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DKDE_INSTALL_QMLDIR=lib/qt6/qml"
 hostmakedepends="extra-cmake-modules qt6-tools qt6-base

From 5f9038e64842e5c42d6e84d29fb3eb4fb5003998 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 15:29:05 +0700
Subject: [PATCH 43/44] fcitx5-qt: for qt6-6.7

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

diff --git a/srcpkgs/fcitx5-qt/template b/srcpkgs/fcitx5-qt/template
index effd00ee9fcb59..064a63593b3cb0 100644
--- a/srcpkgs/fcitx5-qt/template
+++ b/srcpkgs/fcitx5-qt/template
@@ -1,7 +1,7 @@
 # Template file for 'fcitx5-qt'
 pkgname=fcitx5-qt
 version=5.1.6
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DENABLE_QT4=OFF -DENABLE_QT5=ON
  -DCMAKE_INSTALL_QT6PLUGINDIR=/usr/lib/qt6/plugins
@@ -9,7 +9,7 @@ configure_args="-DENABLE_QT4=OFF -DENABLE_QT5=ON
 hostmakedepends="cldr-emoji-annotation pkg-config gettext doxygen
  extra-cmake-modules qt5-qmake qt5-host-tools qt6-base"
 makedepends="libfcitx5-devel fmt-devel qt5-devel libxkbcommon-devel
- qt6-base-devel qt6-wayland-devel"
+ qt6-base-private-devel qt6-wayland-private-devel"
 short_desc="Flexible Context-aware Input Tool with eXtension v5 - Qt"
 maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
 license="LGPL-2.1-or-later, BSD-3-Clause"

From c034b9ef3b31a486fd43967d3e1214700edc4c4c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 23 Jun 2024 10:44:34 +0700
Subject: [PATCH 44/44] kf6-ksvg: for qt6-6.7

---
 srcpkgs/kf6-ksvg/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/kf6-ksvg/template b/srcpkgs/kf6-ksvg/template
index 37379482c5c7c7..a5cd9a3fc94eeb 100644
--- a/srcpkgs/kf6-ksvg/template
+++ b/srcpkgs/kf6-ksvg/template
@@ -1,7 +1,7 @@
 # Template file for 'kf6-ksvg'
 pkgname=kf6-ksvg
 version=6.3.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DKDE_INSTALL_QMLDIR=lib/qt6/qml
  -DKDE_INSTALL_QTPLUGINDIR=lib/qt6/plugins"

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

* Re: [PR PATCH] [Merged]: Qt6 6.7.2
  2024-06-23  3:44 [PR PATCH] Qt6 6.7.2 sgn
  2024-06-23  7:51 ` [PR PATCH] [Updated] " sgn
  2024-06-23 11:35 ` sgn
@ 2024-06-23 11:45 ` sgn
  2 siblings, 0 replies; 4+ messages in thread
From: sgn @ 2024-06-23 11:45 UTC (permalink / raw)
  To: ml

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

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

Qt6 6.7.2
https://github.com/void-linux/void-packages/pull/50942

Description:
<!-- Uncomment relevant sections and delete options which are not applicable -->
[ci skip][skip ci]
#### Testing the changes
- I tested the changes in this PR: **YES**|**briefly**|**NO**

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


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

end of thread, other threads:[~2024-06-23 11:45 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-06-23  3:44 [PR PATCH] Qt6 6.7.2 sgn
2024-06-23  7:51 ` [PR PATCH] [Updated] " sgn
2024-06-23 11:35 ` sgn
2024-06-23 11:45 ` [PR PATCH] [Merged]: " sgn

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