git: 66259c9c641b - main - Qt6: Import Qt6 ports form kde@'s repository
- Reply: Jan Beich : "Re: git: 66259c9c641b - main - Qt6: Import Qt6 ports form kde@'s repository"
- Reply: Fernando_ApesteguĂa : "Re: git: 66259c9c641b - main - Qt6: Import Qt6 ports form kde@'s repository"
- Reply: Jan Beich : "Re: git: 66259c9c641b - main - Qt6: Import Qt6 ports form kde@'s repository"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 21 Aug 2022 16:46:17 UTC
The branch main has been updated by tcberner:
URL: https://cgit.FreeBSD.org/ports/commit/?id=66259c9c641b1fc828becbe2959dbe7380e55fe1
commit 66259c9c641b1fc828becbe2959dbe7380e55fe1
Author: Tobias C. Berner <tcberner@FreeBSD.org>
AuthorDate: 2022-08-12 17:55:36 +0000
Commit: Tobias C. Berner <tcberner@FreeBSD.org>
CommitDate: 2022-08-21 16:42:38 +0000
Qt6: Import Qt6 ports form kde@'s repository
This change brings in the new Qt6 stack, which might still be a bit
in flux in the ports tree for a while.
Obtained from https://github.com/freebsd/freebsd-ports-kde/tree/qt6-6.3.1
with commits from lbartoletti and myself.
Note:
ww/qt6-webengine will land once kai wins another round of patching boundled
chromiums sources.
Exp-run by: antoine
PR: 265843
Differential Revision: https://reviews.freebsd.org/D36179
---
Mk/Uses/qmake.mk | 2 +-
Mk/Uses/qt-dist.mk | 94 +-
Mk/Uses/qt.mk | 40 +-
devel/Makefile | 4 +
devel/qt6-5compat/Makefile | 21 +
devel/qt6-5compat/distinfo | 3 +
devel/qt6-5compat/pkg-descr | 8 +
devel/qt6-5compat/pkg-plist | 85 +
devel/qt6-base/Makefile | 125 +
devel/qt6-base/distinfo | 3 +
devel/qt6-base/files/patch-cmake_FindMySQL.cmake | 13 +
devel/qt6-base/files/patch-cmake_QtBuild.cmake | 11 +
.../files/patch-cmake_QtFlagHandlingHelpers.cmake | 13 +
.../files/patch-cmake_QtPkgConfigHelpers.cmake | 10 +
.../files/patch-cmake_QtRpathHelpers.cmake | 11 +
...rt_devicediscovery_qdevicediscovery__static.cpp | 14 +
...port_devicediscovery_qdevicediscovery__udev.cpp | 14 +
...t_evdevkeyboard_qevdevkeyboard__defaultmap__p.h | 14 +
...t_input_evdevkeyboard_qevdevkeyboardhandler.cpp | 14 +
...support_input_evdevmouse_qevdevmousehandler.cpp | 15 +
...pport_input_evdevtablet_qevdevtablethandler.cpp | 14 +
...support_input_evdevtouch_qevdevtouchhandler.cpp | 14 +
devel/qt6-base/pkg-descr | 3 +
devel/qt6-base/pkg-plist | 3746 ++++++++++++++++++++
devel/qt6-tools/Makefile | 45 +
devel/qt6-tools/distinfo | 3 +
devel/qt6-tools/pkg-descr | 7 +
devel/qt6-tools/pkg-plist | 430 +++
devel/qt6-translations/Makefile | 16 +
devel/qt6-translations/distinfo | 3 +
devel/qt6-translations/pkg-descr | 4 +
devel/qt6-translations/pkg-plist | 267 ++
graphics/Makefile | 4 +
graphics/qt6-3d/Makefile | 40 +
graphics/qt6-3d/distinfo | 3 +
...src_3rdparty_assimp_src_contrib_zip_src_miniz.h | 13 +
graphics/qt6-3d/pkg-descr | 7 +
graphics/qt6-3d/pkg-plist | 1458 ++++++++
graphics/qt6-imageformats/Makefile | 35 +
graphics/qt6-imageformats/distinfo | 3 +
graphics/qt6-imageformats/pkg-descr | 6 +
graphics/qt6-imageformats/pkg-plist | 45 +
graphics/qt6-svg/Makefile | 31 +
graphics/qt6-svg/distinfo | 3 +
graphics/qt6-svg/pkg-descr | 8 +
graphics/qt6-svg/pkg-plist | 87 +
graphics/qt6-wayland/Makefile | 35 +
graphics/qt6-wayland/distinfo | 3 +
graphics/qt6-wayland/files/patch-CMakeLists.txt | 11 +
graphics/qt6-wayland/pkg-descr | 6 +
graphics/qt6-wayland/pkg-plist | 621 ++++
misc/Makefile | 1 +
misc/qt6-doc/Makefile | 16 +
misc/qt6-doc/distinfo | 3 +
misc/qt6-doc/pkg-descr | 6 +
misc/qt6-doc/pkg-plist | 1 +
net/Makefile | 1 +
net/qt6-networkauth/Makefile | 22 +
net/qt6-networkauth/distinfo | 3 +
net/qt6-networkauth/pkg-descr | 6 +
net/qt6-networkauth/pkg-plist | 51 +
www/Makefile | 1 +
x11-toolkits/Makefile | 4 +
x11-toolkits/qt6-declarative/Makefile | 44 +
x11-toolkits/qt6-declarative/distinfo | 3 +
x11-toolkits/qt6-declarative/pkg-descr | 7 +
x11-toolkits/qt6-declarative/pkg-plist | 2622 ++++++++++++++
x11-toolkits/qt6-quick3d/Makefile | 33 +
x11-toolkits/qt6-quick3d/distinfo | 3 +
x11-toolkits/qt6-quick3d/pkg-descr | 7 +
x11-toolkits/qt6-quick3d/pkg-plist | 931 +++++
x11-toolkits/qt6-quicktimeline/Makefile | 31 +
x11-toolkits/qt6-quicktimeline/distinfo | 3 +
x11-toolkits/qt6-quicktimeline/pkg-descr | 6 +
x11-toolkits/qt6-quicktimeline/pkg-plist | 46 +
x11-toolkits/qt6-shadertools/Makefile | 31 +
x11-toolkits/qt6-shadertools/distinfo | 3 +
x11-toolkits/qt6-shadertools/pkg-descr | 8 +
x11-toolkits/qt6-shadertools/pkg-plist | 48 +
79 files changed, 11386 insertions(+), 40 deletions(-)
diff --git a/Mk/Uses/qmake.mk b/Mk/Uses/qmake.mk
index 1524aed3d95d..48304c742493 100644
--- a/Mk/Uses/qmake.mk
+++ b/Mk/Uses/qmake.mk
@@ -109,7 +109,7 @@ QMAKE_SOURCE_PATH?= # empty
. endif
# Add qmake to USE_QT -- unless it's qmake itself
-. if !${PORTNAME} == qmake
+. if !${PORTNAME} == qmake && ${_QT_VER:M5}
USE_QT+= qmake_build
. endif
diff --git a/Mk/Uses/qt-dist.mk b/Mk/Uses/qt-dist.mk
index d644f0b44d58..7a8ed434bf0b 100644
--- a/Mk/Uses/qt-dist.mk
+++ b/Mk/Uses/qt-dist.mk
@@ -28,6 +28,9 @@ _QT5_DISTS= 3d activeqt androidextras base charts connectivity datavis3d \
serialport speech svg tools translations virtualkeyboard wayland \
webchannel webengine webglplugin websockets webview winextras \
x11extras xmlpatterns
+_QT6_DISTS= 3d 5compat base declarative doc imageformats quick3d quickcontrols2 \
+ quicktimeline networkauth shadertools svg tools translations webengine wayland
+
_QT_DISTS= ${_QT${_QT_VER}_DISTS}
# We only accept one item as an argument. The fetch target further below works
@@ -45,9 +48,7 @@ IGNORE= cannot be installed: different Qt dists specified via qt-dist:[${qt-dis
# Fall back to sensible defaults for _QT_DIST
. if empty(_QT_DIST)
-. if ${_QT_VER:M5}
_QT_DIST= ${PORTNAME} # don't force qt-dist to be set for Qt5 ports which 75% of time are ${PORTNAME}
-. endif
. endif
# Check validitiy
@@ -56,18 +57,47 @@ IGNORE= Unsupported qt-dist ${_QT_DIST} for qt:${_QT_VER}
. endif
################################################################################
-# Set standard bsd.port.mk variables
+# Set standard bsd.port.mk variables.
LICENSE?= LGPL21
. if !exists(${PKGDIR}/pkg-descr)
DESCR?= ${PORTSDIR}/devel/${_QT_RELNAME}/pkg-descr
. endif
+
# Stage support.
-DESTDIRNAME= INSTALL_ROOT
+_QT5_DESTDIRNAME= INSTALL_ROOT
+_QT6_DESTDIRNAME= DESTDIR
+DESTDIRNAME= ${_QT${_QT_VER}_DESTDIRNAME}
-. if ${_QT_VER:M5}
+# Qt's tarballs are xz compressed.
+. if empty(USES:Mtar)
+EXTRACT_SUFX?= .tar.xz
+. endif
+# Qt5 specific master sites
+_QT5_MASTER_SITES_kde= LOCAL
+_QT5_MASTER_SITE_SUBDIR_kde= tcberner/KDE/Qt/${_QT_VERSION}
+_QT5_MASTER_SITES= ${MASTER_SITE_QT}
+_QT5_MASTER_SITE_SUBDIR= official_releases/qt/${_QT_VERSION:R}/${_QT_VERSION}/submodules/
+# Qt6 specific master sites
+_QT6_MASTER_SITES= ${MASTER_SITE_QT}
+_QT6_MASTER_SITE_SUBDIR= official_releases/qt/${_QT_VERSION:R}/${_QT_VERSION}/submodules \
+ official_releases/additional_libraries/${_QT_VERSION:R}/${_QT_VERSION}/
+# Qt5 specific distnames
+_QT5_DISTNAME= ${_QT_DIST:S,^,qt,:S,$,-everywhere-src-${DISTVERSION},}
+_QT5_DISTNAME_kde= ${_QT_DIST:S,^,kde-qt,:S,$,-${DISTVERSION},}
+# Qt6 specific distnames
+_QT6_DISTNAME= ${_QT_DIST:S,^,qt,:S,$,-everywhere-src-${DISTVERSION},}
+
+# Effective master sites and disfile valus
+MASTER_SITES= ${_QT${_QT_VER}_MASTER_SITES${_KDE_${_QT_DIST}:D_kde}}
+MASTER_SITE_SUBDIR= ${_QT${_QT_VER}_MASTER_SITE_SUBDIR${_KDE_${_QT_DIST}:D_kde}}
+DISTNAME= ${_QT${_QT_VER}_DISTNAME${_KDE_${_QT_DIST}:D_kde}}
+DISTFILES= ${DISTNAME:S,$,${EXTRACT_SUFX},}
+DIST_SUBDIR= KDE/Qt/${_QT_VERSION}
+
+. if ${_QT_VER:M5}
# KDE maintains a repository with a patched Qt5 distribution.
_KDE_3d= 15
_KDE_base= 165
@@ -105,26 +135,18 @@ _KDE_websockets= 3
_KDE_webview= 0
_KDE_x11extras= 0
_KDE_xmlpatterns= 0
-
. if defined(_KDE_${_QT_DIST})
-# KDE patched Qt parts
QT5_KDE_PATCH= p${_KDE_${_QT_DIST}}
_KDE_${_QT_DIST}_VERSION?= ${_QT_VERSION}
_KDE_${_QT_DIST}_ORIGIN_TAG?= v${_KDE_${_QT_DIST}_VERSION}-lts-lgpl
-MASTER_SITES= LOCAL/tcberner/KDE/Qt/${_QT_VERSION}
-DISTNAME= ${_QT_DIST:S,^,kde-qt,:S,$,-${DISTVERSION},}
COMMENT+= (KDE patched)
. else
-# non KDE patched Qt parts
QT5_KDE_PATCH= #
-MASTER_SITES= ${MASTER_SITE_QT}
-MASTER_SITE_SUBDIR?= official_releases/qt/${_QT_VERSION:R}/${_QT_VERSION}/submodules/
-DISTNAME= ${_QT_DIST:S,^,qt,:S,$,-everywhere-src-${DISTVERSION},}
. endif
+. endif # ${_QT_VER:M5}
-DISTFILES= ${DISTNAME:S,$,${EXTRACT_SUFX},}
-DIST_SUBDIR= KDE/Qt/${_QT_VERSION}
-
+# Environment setup for Qt5
+. if ${_QT_VER:M5}
# Qt (at least when used with qmake) has a tendency to overlink: some libraries
# have dependencies on others in the mkspec configurations and the latter are
# always passed to the linker even if they are not actually used. By passing
@@ -132,17 +154,6 @@ DIST_SUBDIR= KDE/Qt/${_QT_VERSION}
# have to declare a lot of unnecessary dependencies in USE_QT5.
LDFLAGS+= -Wl,--as-needed
-. if ${.TARGETS:Mmakesum} || ${.TARGETS:Mfetch} && \
- defined(DISABLE_SIZE) && defined(NO_CHECKSUM)
-# Ensure that the "makesum" target (with its inner "fetch" one) uses
-# devel/qt*/distinfo for every port.
-. endif
-
-# Qt5's tarballs are xz compressed.
-. if empty(USES:Mtar)
-EXTRACT_SUFX?= .tar.xz
-. endif
-
. if ${_QT_DIST} == "base" && ${PORTNAME} != "qmake"
# Qt configure requires pkg-config to detect dependencies.
.include "${USESDIR}/pkgconfig.mk"
@@ -156,6 +167,26 @@ EXTRACT_AFTER_ARGS?= ${DISTNAME:S,$,/examples,:S,^,--exclude ,} \
--no-same-owner --no-same-permissions
. endif # ! ${_QT_VER:M5}
+# Build setup for Qt6
+. if ${_QT_VER:M6}
+CMAKE_ARGS+= -DCMAKE_INSTALL_PREFIX=${PREFIX} \
+ -DINSTALL_BINDIR=${PREFIX}/${QT_BINDIR_REL} \
+ -DINSTALL_PUBLICBINDIR=${PREFIX}/bin \
+ -DINSTALL_LIBDIR=${PREFIX}/${QT_LIBDIR_REL} \
+ -DINSTALL_LIBEXECDIR=${PREFIX}/${QT_LIBEXECDIR_REL} \
+ -DINSTALL_DOCDIR=${PREFIX}/${QT_DOCDIR_REL} \
+ -DINSTALL_ARCHDATADIR=${PREFIX}/${QT_ARCHDIR_REL} \
+ -DINSTALL_DATADIR=${PREFIX}/${QT_DATADIR_REL} \
+ -DINSTALL_INCLUDEDIR=${PREFIX}/${QT_INCDIR_REL} \
+ -DINSTALL_MKSPECSDIR=${PREFIX}/${QT_MKSPECDIR_REL} \
+ -DINSTALL_EXAMPLESDIR=${PREFIX}/${QT_EXAMPLEDIR_REL} \
+ -DINSTALL_DESCRIPTIONSDIR=${PREFIX}/${QT_DESCRIPTIONSDIR_REL} \
+ -DQT_QMAKE_TARGET_MKSPEC:String=freebsd-clang \
+ --log-level=TRACE
+. endif
+
+# Build setup for Qt5
+. if ${_QT_VER:M5}
CONFIGURE_ENV+= MAKE="${MAKE:T}"
CONFIGURE_ARGS+= -opensource -confirm-license \
@@ -169,10 +200,8 @@ CONFIGURE_ARGS+= -opensource -confirm-license \
-datadir ${PREFIX}/${QT_DATADIR_REL} \
-docdir ${PREFIX}/${QT_DOCDIR_REL} \
-translationdir ${PREFIX}/${QT_L10NDIR_REL} \
- -sysconfdir ${PREFIX}/${QT_ETCDIR_REL}
-
-. if ${_QT_VER:M5}
-CONFIGURE_ARGS+= -nomake examples -nomake tests \
+ -sysconfdir ${PREFIX}/${QT_ETCDIR_REL} \
+ -nomake examples -nomake tests \
-platform ${QMAKESPECNAME} \
-archdatadir ${PREFIX}/${QT_ARCHDIR_REL} \
-libexecdir ${PREFIX}/${QT_LIBEXECDIR_REL} \
@@ -224,9 +253,11 @@ _EXTRA_PATCHES_QT5+= ${PORTSDIR}/devel/${_QT_RELNAME}/files/extra-patch-mkspecs_
${PORTSDIR}/devel/${_QT_RELNAME}/files/extra-patch-mkspecs_common_gcc-base.conf \
${PORTSDIR}/devel/${_QT_RELNAME}/files/extrapatch-mkspecs_freebsd-g++_qmake.conf
. endif
+. if ${_QT_VER:M5}
EXTRA_PATCHES?= ${PORTSDIR}/devel/${_QT_RELNAME}/files/extrapatch-configure \
${PORTSDIR}/devel/${_QT_RELNAME}/files/extrapatch-sync.profiles \
${_EXTRA_PATCHES_QT5}
+. endif # ${_QT_VER:M5}
. endif # ${_QT_DIST} == "base"
# Override settings installed in qconfig.h and *.pri files. The flags will be
@@ -469,3 +500,4 @@ qt-create-kde-distfile:
${_KDE_${_QT_DIST}_ORIGIN_TAG}
.endif # defined(_QT_DIST_MK_INCLUDED)
+
diff --git a/Mk/Uses/qt.mk b/Mk/Uses/qt.mk
index 659dda05c8c8..9fb06dad9578 100644
--- a/Mk/Uses/qt.mk
+++ b/Mk/Uses/qt.mk
@@ -21,8 +21,9 @@
_QT_MK_INCLUDED= qt.mk
# Qt versions currently supported by the framework.
-_QT_SUPPORTED?= 5
+_QT_SUPPORTED?= 5 6
QT5_VERSION?= 5.15.5
+QT6_VERSION?= 6.3.1
# We accept the Qt version to be passed by either or all of the three mk files.
. if empty(qt_ARGS) && empty(qmake_ARGS) && empty(qt-dist_ARGS)
@@ -54,12 +55,12 @@ IGNORE?= cannot decide what Qt version to use: specify one via qt:[${_QT_SUPPOR
_QT_RELNAME= qt${_QT_VER}
_QT_VERSION= ${QT${_QT_VER}_VERSION}
-# A wrapper (qtchooser) is used to invoke binaries.
QT_BINDIR_REL?= ${QT_ARCHDIR_REL}/bin
QT_INCDIR_REL?= include/${_QT_RELNAME}
QT_LIBDIR_REL?= lib/${_QT_RELNAME}
QT_ARCHDIR_REL?= ${QT_LIBDIR_REL}
QT_PLUGINDIR_REL?= ${QT_ARCHDIR_REL}/plugins
+QT_DESCRIPTIONSDIR_REL?=${QT_DATADIR_REL}/modules
QT_LIBEXECDIR_REL?= libexec/${_QT_RELNAME}
QT_IMPORTDIR_REL?= ${QT_ARCHDIR_REL}/imports
QT_QMLDIR_REL?= ${QT_ARCHDIR_REL}/qml
@@ -107,7 +108,6 @@ PLIST_SUB+= QT_${dir}DIR="${QT_${dir}DIR_REL}"
. endif
. endfor
-# Pass the chosen Qt version to the environment for qtchooser.
CONFIGURE_ENV+= QT_SELECT=${_QT_RELNAME}
MAKE_ENV+= QT_SELECT=${_QT_RELNAME}
@@ -138,17 +138,29 @@ _USE_QT_ALL+= sql-ibase
. endif
_USE_QT5_ONLY= 3d buildtools charts concurrent connectivity \
- core datavis3d diag examples gamepad \
- graphicaleffects location networkauth paths phonon4 plugininfo printsupport \
+ core datavis3d diag examples gamepad graphicaleffects \
+ location networkauth paths phonon4 plugininfo printsupport \
qdbus qdoc qdoc-data qev quick3d quickcontrols quickcontrols2 \
- quicktimeline remoteobjects scxml sensors serialbus serialport speech \
- sql-tds uiplugin uitools virtualkeyboard wayland webchannel webglplugin \
- webengine websockets websockets-qml webview widgets x11extras
+ quicktimeline remoteobjects scxml sensors serialbus serialport \
+ speech sql-tds uiplugin uitools virtualkeyboard wayland \
+ webchannel webglplugin webengine websockets websockets-qml \
+ webview widgets x11extras assistant dbus declarative designer \
+ doc gui help imageformats l10n linguist linguisttools \
+ multimedia network opengl pixeltool qdbusviewer qmake script \
+ scripttools sql sql-mysql sql-odbc sql-pgsql sql-sqlite2 \
+ sql-sqlite3 svg testlib webkit xml xmlpatterns
+
+_USE_QT6_ONLY= 3d 5compat base declarative doc imageformats quick3d \
+ quickcontrols2 quicktimeline networkauth shadertools \
+ svg tools translations wayland
# Dependency tuples: _LIB should be preferred if possible.
qt-3d_PORT= graphics/${_QT_RELNAME}-3d
qt-3d_LIB= libQt${_QT_LIBVER}3DCore.so
+qt-5compat_PORT= devel/${_QT_RELNAME}-5compat
+qt-5compat_LIB= libQt${_QT_LIBVER}Core5Compat.so
+
qt-assistant_PORT= devel/${_QT_RELNAME}-assistant
qt-assistant_PATH= ${LOCALBASE}/${QT_BINDIR_REL}/assistant
@@ -156,6 +168,9 @@ qt-assistant_PATH= ${LOCALBASE}/${QT_BINDIR_REL}/assistant
qt-buildtools_PORT= devel/${_QT_RELNAME}-buildtools
qt-buildtools_PATH= ${_QT_RELNAME}-buildtools>=${_QT_VERSION:R}
+qt-base_PORT= devel/${_QT_RELNAME}-base
+qt-base_LIB= libQt${_QT_LIBVER}Core.so
+
qt-charts_PORT= x11-toolkits/${_QT_RELNAME}-charts
qt-charts_LIB= libQt${_QT_LIBVER}Charts.so
@@ -298,6 +313,9 @@ qt-serialbus_LIB= libQt${_QT_LIBVER}SerialBus.so
qt-serialport_PORT= comms/${_QT_RELNAME}-serialport
qt-serialport_LIB= libQt${_QT_LIBVER}SerialPort.so
+qt-shadertools_PORT= x11-toolkits/${_QT_RELNAME}-shadertools
+qt-shadertools_LIB= libQt${_QT_LIBVER}ShaderTools.so
+
qt-speech_PORT= accessibility/${_QT_RELNAME}-speech
qt-speech_LIB= libQt${_QT_LIBVER}TextToSpeech.so
@@ -319,6 +337,12 @@ qt-svg_LIB= libQt${_QT_LIBVER}Svg.so
qt-testlib_PORT= devel/${_QT_RELNAME}-testlib
qt-testlib_LIB= libQt${_QT_LIBVER}Test.so
+qt-tools_PORT= devel/${_QT_RELNAME}-tools
+qt-tools_PATH= ${LOCALBASE}/${QT_BINDIR_REL}/lupdate
+
+qt-translations_PORT= devel/${_QT_RELNAME}-translations
+qt-translations_PATH= ${LOCALBASE}/${QT_DATADIR_REL}/translations
+
qt-uiplugin_PORT= x11-toolkits/${_QT_RELNAME}-uiplugin
qt-uiplugin_PATH= ${LOCALBASE}/${QT_INCDIR_REL}/QtUiPlugin/QtUiPlugin
diff --git a/devel/Makefile b/devel/Makefile
index 0e0c824919a9..e7049c5222d2 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -5612,6 +5612,10 @@
SUBDIR += qt5-scxml
SUBDIR += qt5-testlib
SUBDIR += qt5-uitools
+ SUBDIR += qt6-5compat
+ SUBDIR += qt6-base
+ SUBDIR += qt6-tools
+ SUBDIR += qt6-translations
SUBDIR += qtcreator
SUBDIR += quantum
SUBDIR += quickcheck++
diff --git a/devel/qt6-5compat/Makefile b/devel/qt6-5compat/Makefile
new file mode 100644
index 000000000000..738de343914f
--- /dev/null
+++ b/devel/qt6-5compat/Makefile
@@ -0,0 +1,21 @@
+PORTNAME= 5compat
+DISTVERSION= ${QT6_VERSION}
+CATEGORIES= devel
+PKGNAMEPREFIX= qt6-
+
+MAINTAINER= kde@FreeBSD.org
+COMMENT= Qt 6 module that contains unsupported Qt 5 APIs
+
+LIB_DEPENDS= libicuuc.so:devel/icu \
+ libdouble-conversion.so:devel/double-conversion \
+ libpcre.so:devel/pcre \
+ libpcre2-16.so:devel/pcre2 \
+ libzstd.so:archivers/zstd
+
+USES= cmake compiler:c++17-lang gettext-runtime gnome \
+ qt-dist:6
+USE_GNOME= glib20
+USE_QT= base
+USE_LDCONFIG= ${PREFIX}/${QT_LIBDIR_REL}
+
+.include <bsd.port.mk>
diff --git a/devel/qt6-5compat/distinfo b/devel/qt6-5compat/distinfo
new file mode 100644
index 000000000000..1c392c597d97
--- /dev/null
+++ b/devel/qt6-5compat/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1660482594
+SHA256 (KDE/Qt/6.3.1/qt5compat-everywhere-src-6.3.1.tar.xz) = a43ec62bd778eaecf88ad7847118d1c2a471b0fcb820f93beb311d7ab9566cfd
+SIZE (KDE/Qt/6.3.1/qt5compat-everywhere-src-6.3.1.tar.xz) = 8195804
diff --git a/devel/qt6-5compat/pkg-descr b/devel/qt6-5compat/pkg-descr
new file mode 100644
index 000000000000..a525c54b94b8
--- /dev/null
+++ b/devel/qt6-5compat/pkg-descr
@@ -0,0 +1,8 @@
+Qt is a cross-platform application and UI framework for developers
+using C++ or QML, a CSS/JavaScript-like language.
+
+The Qt 5 Core Compat module contains the Qt Core APIs which will be no longer
+supported in Qt 6 and therefore were removed from Qt 6. The module is provided
+to facilitate the transition to Qt 6.
+
+WWW: http://qt-project.org
diff --git a/devel/qt6-5compat/pkg-plist b/devel/qt6-5compat/pkg-plist
new file mode 100644
index 000000000000..37836dea775f
--- /dev/null
+++ b/devel/qt6-5compat/pkg-plist
@@ -0,0 +1,85 @@
+%%QT_INCDIR%%/QtCore5Compat/%%FULLVER%%/QtCore5Compat/private/cp949codetbl_p.h
+%%QT_INCDIR%%/QtCore5Compat/%%FULLVER%%/QtCore5Compat/private/qbig5codec_p.h
+%%QT_INCDIR%%/QtCore5Compat/%%FULLVER%%/QtCore5Compat/private/qbinaryjson_p.h
+%%QT_INCDIR%%/QtCore5Compat/%%FULLVER%%/QtCore5Compat/private/qbinaryjsonarray_p.h
+%%QT_INCDIR%%/QtCore5Compat/%%FULLVER%%/QtCore5Compat/private/qbinaryjsonobject_p.h
+%%QT_INCDIR%%/QtCore5Compat/%%FULLVER%%/QtCore5Compat/private/qbinaryjsonvalue_p.h
+%%QT_INCDIR%%/QtCore5Compat/%%FULLVER%%/QtCore5Compat/private/qeucjpcodec_p.h
+%%QT_INCDIR%%/QtCore5Compat/%%FULLVER%%/QtCore5Compat/private/qeuckrcodec_p.h
+%%QT_INCDIR%%/QtCore5Compat/%%FULLVER%%/QtCore5Compat/private/qgb18030codec_p.h
+%%QT_INCDIR%%/QtCore5Compat/%%FULLVER%%/QtCore5Compat/private/qiconvcodec_p.h
+%%QT_INCDIR%%/QtCore5Compat/%%FULLVER%%/QtCore5Compat/private/qicucodec_p.h
+%%QT_INCDIR%%/QtCore5Compat/%%FULLVER%%/QtCore5Compat/private/qisciicodec_p.h
+%%QT_INCDIR%%/QtCore5Compat/%%FULLVER%%/QtCore5Compat/private/qjiscodec_p.h
+%%QT_INCDIR%%/QtCore5Compat/%%FULLVER%%/QtCore5Compat/private/qjpunicode_p.h
+%%QT_INCDIR%%/QtCore5Compat/%%FULLVER%%/QtCore5Compat/private/qlatincodec_p.h
+%%QT_INCDIR%%/QtCore5Compat/%%FULLVER%%/QtCore5Compat/private/qsimplecodec_p.h
+%%QT_INCDIR%%/QtCore5Compat/%%FULLVER%%/QtCore5Compat/private/qsjiscodec_p.h
+%%QT_INCDIR%%/QtCore5Compat/%%FULLVER%%/QtCore5Compat/private/qtcore5compat-config_p.h
+%%QT_INCDIR%%/QtCore5Compat/%%FULLVER%%/QtCore5Compat/private/qtextcodec_p.h
+%%QT_INCDIR%%/QtCore5Compat/%%FULLVER%%/QtCore5Compat/private/qtsciicodec_p.h
+%%QT_INCDIR%%/QtCore5Compat/%%FULLVER%%/QtCore5Compat/private/qutfcodec_p.h
+%%QT_INCDIR%%/QtCore5Compat/%%FULLVER%%/QtCore5Compat/private/qwindowscodec_p.h
+%%QT_INCDIR%%/QtCore5Compat/%%FULLVER%%/QtCore5Compat/private/qxml_p.h
+%%QT_INCDIR%%/QtCore5Compat/QBinaryJson
+%%QT_INCDIR%%/QtCore5Compat/QConcatenable
+%%QT_INCDIR%%/QtCore5Compat/QLinkedList
+%%QT_INCDIR%%/QtCore5Compat/QLinkedListData
+%%QT_INCDIR%%/QtCore5Compat/QLinkedListIterator
+%%QT_INCDIR%%/QtCore5Compat/QLinkedListNode
+%%QT_INCDIR%%/QtCore5Compat/QMutableLinkedListIterator
+%%QT_INCDIR%%/QtCore5Compat/QRegExp
+%%QT_INCDIR%%/QtCore5Compat/QStringRef
+%%QT_INCDIR%%/QtCore5Compat/QTextCodec
+%%QT_INCDIR%%/QtCore5Compat/QTextDecoder
+%%QT_INCDIR%%/QtCore5Compat/QTextEncoder
+%%QT_INCDIR%%/QtCore5Compat/QXmlAttributes
+%%QT_INCDIR%%/QtCore5Compat/QXmlContentHandler
+%%QT_INCDIR%%/QtCore5Compat/QXmlDTDHandler
+%%QT_INCDIR%%/QtCore5Compat/QXmlDeclHandler
+%%QT_INCDIR%%/QtCore5Compat/QXmlDefaultHandler
+%%QT_INCDIR%%/QtCore5Compat/QXmlEntityResolver
+%%QT_INCDIR%%/QtCore5Compat/QXmlErrorHandler
+%%QT_INCDIR%%/QtCore5Compat/QXmlInputSource
+%%QT_INCDIR%%/QtCore5Compat/QXmlLexicalHandler
+%%QT_INCDIR%%/QtCore5Compat/QXmlLocator
+%%QT_INCDIR%%/QtCore5Compat/QXmlNamespaceSupport
+%%QT_INCDIR%%/QtCore5Compat/QXmlParseException
+%%QT_INCDIR%%/QtCore5Compat/QXmlReader
+%%QT_INCDIR%%/QtCore5Compat/QXmlSimpleReader
+%%QT_INCDIR%%/QtCore5Compat/QtCore5Compat
+%%QT_INCDIR%%/QtCore5Compat/QtCore5CompatDepends
+%%QT_INCDIR%%/QtCore5Compat/QtCore5CompatVersion
+%%QT_INCDIR%%/QtCore5Compat/qbinaryjson.h
+%%QT_INCDIR%%/QtCore5Compat/qcore5global.h
+%%QT_INCDIR%%/QtCore5Compat/qlinkedlist.h
+%%QT_INCDIR%%/QtCore5Compat/qregexp.h
+%%QT_INCDIR%%/QtCore5Compat/qstringref.h
+%%QT_INCDIR%%/QtCore5Compat/qtcore5compat-config.h
+%%QT_INCDIR%%/QtCore5Compat/qtcore5compatversion.h
+%%QT_INCDIR%%/QtCore5Compat/qtextcodec.h
+%%QT_INCDIR%%/QtCore5Compat/qxml.h
+lib/cmake/Qt6/FindWrapIconv.cmake
+lib/cmake/Qt6BuildInternals/StandaloneTests/Qt5CompatTestsConfig.cmake
+lib/cmake/Qt6Core5Compat/Qt6Core5CompatAdditionalTargetInfo.cmake
+lib/cmake/Qt6Core5Compat/Qt6Core5CompatConfig.cmake
+lib/cmake/Qt6Core5Compat/Qt6Core5CompatConfigVersion.cmake
+lib/cmake/Qt6Core5Compat/Qt6Core5CompatConfigVersionImpl.cmake
+lib/cmake/Qt6Core5Compat/Qt6Core5CompatDependencies.cmake
+lib/cmake/Qt6Core5Compat/Qt6Core5CompatTargets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/Qt6Core5Compat/Qt6Core5CompatTargets.cmake
+lib/cmake/Qt6Core5Compat/Qt6Core5CompatVersionlessTargets.cmake
+%%QT_LIBDIR%%/libQt6Core5Compat.prl
+%%QT_LIBDIR%%/libQt6Core5Compat.so
+%%QT_LIBDIR%%/libQt6Core5Compat.so.6
+%%QT_LIBDIR%%/libQt6Core5Compat.so.%%FULLVER%%
+%%QT_LIBDIR%%/metatypes/qt6core5compat_%%CMAKE_BUILD_TYPE%%_metatypes.json
+%%QT_MKSPECDIR%%/modules/qt_lib_core5compat.pri
+%%QT_MKSPECDIR%%/modules/qt_lib_core5compat_private.pri
+libdata/pkgconfig/Qt6Core5Compat.pc
+%%QT_DATADIR%%/modules/Core5Compat.json
+@dir %%QT_CMAKEDIR%%/Qt6BuildInternals/StandaloneTests
+@dir %%QT_CMAKEDIR%%/Qt6Core5Compat
+@dir %%QT_LIBDIR%%/cmake/Qt6BuildInternals/StandaloneTests
+@dir %%QT_LIBDIR%%/cmake/Qt6Core5Compat
+@dir %%QT_LIBDIR%%/pkgconfig
diff --git a/devel/qt6-base/Makefile b/devel/qt6-base/Makefile
new file mode 100644
index 000000000000..c9d8465d21a5
--- /dev/null
+++ b/devel/qt6-base/Makefile
@@ -0,0 +1,125 @@
+PORTNAME= base
+DISTVERSION= ${QT6_VERSION}
+CATEGORIES= devel
+PKGNAMEPREFIX= qt6-
+
+MAINTAINER= kde@FreeBSD.org
+COMMENT= Qt base (core, gui, widgets, network,...)
+
+BUILD_DEPENDS= xml:textproc/xmlstarlet \
+ ${LOCALBASE}/include/vulkan/vulkan.h:graphics/vulkan-headers \
+ ${LOCALBASE}/include/linux/input.h:devel/evdev-proto
+LIB_DEPENDS= \
+ libatk-1.0.so:accessibility/atk \
+ libatk-bridge-2.0.so:accessibility/at-spi2-atk \
+ libatspi.so:accessibility/at-spi2-core \
+ libavahi-client.so:net/avahi-app \
+ libbrotlidec.so:archivers/brotli \
+ libcups.so:print/cups \
+ libdbus-1.so:devel/dbus \
+ libdouble-conversion.so:devel/double-conversion \
+ libdrm.so:graphics/libdrm \
+ libepoll-shim.so:devel/libepoll-shim \
+ libepoxy.so:graphics/libepoxy \
+ libevdev.so:devel/libevdev \
+ libexpat.so:textproc/expat2 \
+ libffi.so:devel/libffi \
+ libfontconfig.so:x11-fonts/fontconfig \
+ libfreetype.so:print/freetype2 \
+ libfribidi.so:converters/fribidi \
+ libgmp.so:math/gmp \
+ libgnutls.so:security/gnutls \
+ libgraphite2.so:graphics/graphite2 \
+ libgudev-1.0.so:devel/libgudev \
+ libharfbuzz.so:print/harfbuzz \
+ libicui18n.so:devel/icu \
+ libidn2.so:dns/libidn2 \
+ libinput.so:x11/libinput \
+ libintl.so:devel/gettext-runtime \
+ libjpeg.so:graphics/jpeg-turbo \
+ libmtdev.so:devel/libmtdev \
+ libnettle.so:security/nettle \
+ libp11-kit.so:security/p11-kit \
+ libpcre.so:devel/pcre \
+ libpcre2-16.so:devel/pcre2 \
+ libpng16.so:graphics/png \
+ libtasn1.so:security/libtasn1 \
+ libudev.so:devel/libudev-devd \
+ libunistring.so:devel/libunistring \
+ libvulkan.so:graphics/vulkan-loader \
+ libwacom.so:x11/libwacom \
+ libwayland-client.so:graphics/wayland \
+ libxcb-cursor.so:x11/xcb-util-cursor \
+ libxcb-ewmh.so:x11/xcb-util-wm \
+ libxcb-image.so:x11/xcb-util-image \
+ libxcb-keysyms.so:x11/xcb-util-keysyms \
+ libxcb-render-util.so:x11/xcb-util-renderutil \
+ libxcb-util.so:x11/xcb-util \
+ libxkbcommon.so:x11/libxkbcommon \
+ libzstd.so:archivers/zstd
+
+USES= cmake compiler:c++17-lang gl gnome jpeg perl5 pkgconfig python \
+ qt-dist:6 shebangfix xorg
+USE_GL= egl gl
+USE_GNOME= cairo gdkpixbuf2 glib20 gtk30 pango
+USE_XORG= ice pixman sm x11 xau xcb xcomposite xcursor xdamage xdmcp \
+ xext xfixes xi xinerama xrandr xrender
+CMAKE_ON= QT_AVOID_CMAKE_ARCHIVING_API \
+ QT_FIND_ALL_PACKAGES_ALWAYS
+CMAKE_OFF= QT_FEATURE_eglfs \
+ QT_FEATURE_gssapi
+SHEBANG_FILES= ${WRKSRC}/mkspecs/features/uikit/device_destinations.sh \
+ ${WRKSRC}/mkspecs/features/uikit/devices.py \
+ ${WRKSRC}/mkspecs/features/data/mac/objc_namespace.sh \
+ ${WRKSRC}/util/android/android_emulator_launcher.sh \
+ ${WRKSRC}/util/testrunner/qt-testrunner.py
+USE_LDCONFIG= ${PREFIX}/${QT_LIBDIR_REL}
+
+# zstd from base fails to compress files during the build (error 11: unsupported argument)
+BINARY_ALIAS= zstd=${LOCALBASE}/bin/zstd
+
+#== Option handling
+OPTIONS_GROUP= SQL
+OPTIONS_GROUP_SQL= IBASE MYSQL ODBC PSQL SQLITE
+OPTIONS_DEFAULT= SQLITE
+OPTIONS_SUB= yes
+
+IBASE_DESC= InterBase database support
+IBASE_CMAKE_ON= -DFEATURE_sql_ibase=ON
+IBASE_CMAKE_OFF= -DFEATURE_sql_ibase=OFF
+IBASE_USES= firebird:4.0
+IBASE_BROKEN= IBASE: fatal error: 'gen/iberror.h' file not found
+
+MYSQL_DESC= MySQL database support
+MYSQL_CMAKE_ON= -DFEATURE_sql_mysql=ON
+MYSQL_CMAKE_OFF= -DFEATURE_sql_mysql=OFF
+MYSQL_USES= mysql
+
+ODBC_DESC= ODBC database support
+ODBC_CMAKE_ON= -DFEATURE_sql_odbc=ON
+ODBC_CMAKE_OFF= -DFEATURE_sql_odbc=OFF
+ODBC_LIB_DEPENDS= libodbc.so:databases/unixODBC
+
+PSQL_DESC= PostgreSQL database support
+PSQL_CMAKE_ON= -DFEATURE_sql_psql=ON
+PSQL_CMAKE_OFF= -DFEATURE_sql_psql=OFF
+PSQL_USES= pgsql
+
+SQLITE_DESC= Sqlite database support
+SQLITE_CMAKE_ON= -DFEATURE_sql_sqlite=ON \
+ -DQT_FEATURE_system_sqlite=ON
+SQLITE_CMAKE_OFF= -DFEATURE_sql_sqlite=OFF
+SQLITE_USES= sqlite:3
+
+# TODO: do this cleaner -- somewhere cmake/qmake still creates empty directories
+# for the cmake files in INSTALL_PREFIX/lib/cmake
+post-install:
+ ${RM} -vr ${STAGEDIR}${PREFIX}/${QT_LIBDIR_REL}/cmake
+ # Install symlinks for user-facing tools
+ ${REINPLACE_CMD} -e "s#^#${STAGEDIR}#" -e "s# # ${STAGEDIR}#" \
+ ${WRKDIR}/.build/user_facing_tool_links.txt
+ while read t; do \
+ ${RLN} $$t; \
+ done <${WRKDIR}/.build/user_facing_tool_links.txt
+
+.include <bsd.port.mk>
diff --git a/devel/qt6-base/distinfo b/devel/qt6-base/distinfo
new file mode 100644
index 000000000000..3e8a1c398cca
--- /dev/null
+++ b/devel/qt6-base/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1660482596
+SHA256 (KDE/Qt/6.3.1/qtbase-everywhere-src-6.3.1.tar.xz) = 0a64421d9c2469c2c48490a032ab91d547017c9cc171f3f8070bc31888f24e03
+SIZE (KDE/Qt/6.3.1/qtbase-everywhere-src-6.3.1.tar.xz) = 47118260
diff --git a/devel/qt6-base/files/patch-cmake_FindMySQL.cmake b/devel/qt6-base/files/patch-cmake_FindMySQL.cmake
new file mode 100644
index 000000000000..512ac3cb969a
--- /dev/null
+++ b/devel/qt6-base/files/patch-cmake_FindMySQL.cmake
@@ -0,0 +1,13 @@
+Help cmake figure out the locations of the headers when mariadb is used.
+
+--- cmake/FindMySQL.cmake.orig 2021-10-20 11:54:23 UTC
++++ cmake/FindMySQL.cmake
+@@ -19,7 +19,7 @@
+ # The mysql client library
+
+ find_package(PkgConfig QUIET)
+-pkg_check_modules(PC_MySQL QUIET mysqlclient)
++pkg_search_module(PC_MySQL QUIET mysqlclient mariadb)
+
+ find_path(MySQL_INCLUDE_DIR
+ NAMES mysql.h
diff --git a/devel/qt6-base/files/patch-cmake_QtBuild.cmake b/devel/qt6-base/files/patch-cmake_QtBuild.cmake
new file mode 100644
index 000000000000..ffc68f2e1314
--- /dev/null
+++ b/devel/qt6-base/files/patch-cmake_QtBuild.cmake
@@ -0,0 +1,11 @@
+--- cmake/QtBuild.cmake.orig 2022-05-25 08:58:52 UTC
++++ cmake/QtBuild.cmake
+@@ -198,7 +198,7 @@ function(qt_internal_set_up_global_paths)
+ if(QT_CONFIG_INSTALL_DIR)
+ string(APPEND QT_CONFIG_INSTALL_DIR "/")
+ endif()
+- string(APPEND QT_CONFIG_INSTALL_DIR ${__config_path_part})
++ string(APPEND QT_CONFIG_INSTALL_DIR "lib/cmake")
+
+ set(QT_BUILD_DIR "${QT_BUILD_DIR}" PARENT_SCOPE)
+ set(QT_INSTALL_DIR "${QT_INSTALL_DIR}" PARENT_SCOPE)
diff --git a/devel/qt6-base/files/patch-cmake_QtFlagHandlingHelpers.cmake b/devel/qt6-base/files/patch-cmake_QtFlagHandlingHelpers.cmake
new file mode 100644
index 000000000000..bdde060014ad
--- /dev/null
+++ b/devel/qt6-base/files/patch-cmake_QtFlagHandlingHelpers.cmake
@@ -0,0 +1,13 @@
+--- cmake/QtFlagHandlingHelpers.cmake.orig 2022-05-25 08:58:52 UTC
++++ cmake/QtFlagHandlingHelpers.cmake
+@@ -64,6 +64,10 @@ function(qt_internal_add_link_flags_no_undefined targe
+ set(no_undefined_flag "-Wl,--no-undefined")
+ endif()
+
++ if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
++ set(no_undefined_flag "")
++ endif()
++
+ set(CMAKE_REQUIRED_LINK_OPTIONS ${previous_CMAKE_REQUIRED_LINK_OPTIONS})
+
+ if (NOT HAVE_DASH_UNDEFINED_SYMBOLS AND NOT HAVE_DASH_DASH_NO_UNDEFINED)
diff --git a/devel/qt6-base/files/patch-cmake_QtPkgConfigHelpers.cmake b/devel/qt6-base/files/patch-cmake_QtPkgConfigHelpers.cmake
new file mode 100644
index 000000000000..2c03e159894c
--- /dev/null
+++ b/devel/qt6-base/files/patch-cmake_QtPkgConfigHelpers.cmake
@@ -0,0 +1,10 @@
+--- cmake/QtPkgConfigHelpers.cmake.orig 2022-08-07 11:26:08 UTC
++++ cmake/QtPkgConfigHelpers.cmake
+@@ -144,6 +144,6 @@ function(qt_internal_generate_pkg_config_file module)
+ # This is inspired by https://gitlab.kitware.com/cmake/cmake/-/issues/20842
+ target_sources(${module} PRIVATE "${final_pc_path}")
+
+- qt_install(FILES "${final_pc_path}" DESTINATION "${install_dir}")
++ qt_install(FILES "${final_pc_path}" DESTINATION "${CMAKE_INSTALL_PREFIX}/libdata/pkgconfig")
+ endforeach()
+ endfunction()
diff --git a/devel/qt6-base/files/patch-cmake_QtRpathHelpers.cmake b/devel/qt6-base/files/patch-cmake_QtRpathHelpers.cmake
new file mode 100644
index 000000000000..4cb568c0c01f
--- /dev/null
+++ b/devel/qt6-base/files/patch-cmake_QtRpathHelpers.cmake
@@ -0,0 +1,11 @@
+--- cmake/QtRpathHelpers.cmake.orig 2022-05-25 08:58:52 UTC
++++ cmake/QtRpathHelpers.cmake
+@@ -29,6 +29,8 @@ function(qt_compute_relative_rpath_base rpath install_
+ set(rpath_rel_base "@loader_path")
+ elseif(LINUX OR SOLARIS OR FREEBSD)
+ set(rpath_rel_base "$ORIGIN")
++ elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
++ set(rpath_rel_base "$ORIGIN")
+ else()
+ message(WARNING "No known RPATH_REL_BASE for target platform.")
+ set(rpath_rel_base "NO_KNOWN_RPATH_REL_BASE")
diff --git a/devel/qt6-base/files/patch-src_platformsupport_devicediscovery_qdevicediscovery__static.cpp b/devel/qt6-base/files/patch-src_platformsupport_devicediscovery_qdevicediscovery__static.cpp
new file mode 100644
index 000000000000..6ebffd0f4c5a
--- /dev/null
+++ b/devel/qt6-base/files/patch-src_platformsupport_devicediscovery_qdevicediscovery__static.cpp
@@ -0,0 +1,14 @@
+--- src/platformsupport/devicediscovery/qdevicediscovery_static.cpp.orig 2020-07-03 14:25:13 UTC
++++ src/platformsupport/devicediscovery/qdevicediscovery_static.cpp
+@@ -47,11 +47,7 @@
+ #include <QLoggingCategory>
+ #include <QtCore/private/qcore_unix_p.h>
+
+-#ifdef Q_OS_FREEBSD
+-#include <dev/evdev/input.h>
+-#else
+ #include <linux/input.h>
+-#endif
+ #include <fcntl.h>
+
+ /* android (and perhaps some other linux-derived stuff) don't define everything
diff --git a/devel/qt6-base/files/patch-src_platformsupport_devicediscovery_qdevicediscovery__udev.cpp b/devel/qt6-base/files/patch-src_platformsupport_devicediscovery_qdevicediscovery__udev.cpp
new file mode 100644
index 000000000000..205ff82ee4d5
--- /dev/null
+++ b/devel/qt6-base/files/patch-src_platformsupport_devicediscovery_qdevicediscovery__udev.cpp
@@ -0,0 +1,14 @@
+--- src/platformsupport/devicediscovery/qdevicediscovery_udev.cpp.orig 2020-07-03 14:25:13 UTC
++++ src/platformsupport/devicediscovery/qdevicediscovery_udev.cpp
+@@ -46,11 +46,7 @@
+ #include <QSocketNotifier>
+ #include <QLoggingCategory>
+
+-#ifdef Q_OS_FREEBSD
+-#include <dev/evdev/input.h>
+-#else
+ #include <linux/input.h>
+-#endif
+
+ QT_BEGIN_NAMESPACE
+
diff --git a/devel/qt6-base/files/patch-src_platformsupport_input_evdevkeyboard_qevdevkeyboard__defaultmap__p.h b/devel/qt6-base/files/patch-src_platformsupport_input_evdevkeyboard_qevdevkeyboard__defaultmap__p.h
new file mode 100644
index 000000000000..c5e925a03f38
--- /dev/null
+++ b/devel/qt6-base/files/patch-src_platformsupport_input_evdevkeyboard_qevdevkeyboard__defaultmap__p.h
@@ -0,0 +1,14 @@
+--- src/platformsupport/input/evdevkeyboard/qevdevkeyboard_defaultmap_p.h.orig 2020-07-03 14:25:13 UTC
++++ src/platformsupport/input/evdevkeyboard/qevdevkeyboard_defaultmap_p.h
+@@ -52,11 +52,7 @@
+ //
+
+ #include "qnamespace.h"
+-#ifdef Q_OS_FREEBSD
+-#include <dev/evdev/input.h>
+-#else
+ #include "linux/input.h"
+-#endif
+
+ // no QT_BEGIN_NAMESPACE, since we include it internally...
+
diff --git a/devel/qt6-base/files/patch-src_platformsupport_input_evdevkeyboard_qevdevkeyboardhandler.cpp b/devel/qt6-base/files/patch-src_platformsupport_input_evdevkeyboard_qevdevkeyboardhandler.cpp
new file mode 100644
index 000000000000..95ad75033670
--- /dev/null
+++ b/devel/qt6-base/files/patch-src_platformsupport_input_evdevkeyboard_qevdevkeyboardhandler.cpp
@@ -0,0 +1,14 @@
+--- src/platformsupport/input/evdevkeyboard/qevdevkeyboardhandler.cpp.orig 2020-12-04 10:14:27 UTC
++++ src/platformsupport/input/evdevkeyboard/qevdevkeyboardhandler.cpp
+@@ -53,11 +53,7 @@
+ #include <QtGui/private/qguiapplication_p.h>
+ #include <QtGui/private/qinputdevicemanager_p.h>
+
+-#ifdef Q_OS_FREEBSD
+-#include <dev/evdev/input.h>
+-#else
+ #include <linux/input.h>
+-#endif
+
+ #ifndef input_event_sec
+ #define input_event_sec time.tv_sec
diff --git a/devel/qt6-base/files/patch-src_platformsupport_input_evdevmouse_qevdevmousehandler.cpp b/devel/qt6-base/files/patch-src_platformsupport_input_evdevmouse_qevdevmousehandler.cpp
new file mode 100644
index 000000000000..4e4b6053d6d7
--- /dev/null
+++ b/devel/qt6-base/files/patch-src_platformsupport_input_evdevmouse_qevdevmousehandler.cpp
@@ -0,0 +1,15 @@
+--- src/platformsupport/input/evdevmouse/qevdevmousehandler.cpp.orig 2020-07-03 14:25:13 UTC
++++ src/platformsupport/input/evdevmouse/qevdevmousehandler.cpp
+@@ -53,12 +53,7 @@
+
+ #include <errno.h>
+
+-#ifdef Q_OS_FREEBSD
+-#include <dev/evdev/input.h>
+-#else
+-#include <linux/kd.h>
+ #include <linux/input.h>
+-#endif
+
+ #define TEST_BIT(array, bit) (array[bit/8] & (1<<(bit%8)))
+
diff --git a/devel/qt6-base/files/patch-src_platformsupport_input_evdevtablet_qevdevtablethandler.cpp b/devel/qt6-base/files/patch-src_platformsupport_input_evdevtablet_qevdevtablethandler.cpp
new file mode 100644
index 000000000000..fa1194a91f71
--- /dev/null
+++ b/devel/qt6-base/files/patch-src_platformsupport_input_evdevtablet_qevdevtablethandler.cpp
@@ -0,0 +1,14 @@
+--- src/platformsupport/input/evdevtablet/qevdevtablethandler.cpp.orig 2020-07-03 14:25:13 UTC
++++ src/platformsupport/input/evdevtablet/qevdevtablethandler.cpp
+@@ -46,11 +46,7 @@
+ #include <QLoggingCategory>
+ #include <QtCore/private/qcore_unix_p.h>
+ #include <qpa/qwindowsysteminterface.h>
+-#ifdef Q_OS_FREEBSD
+-#include <dev/evdev/input.h>
+-#else
+ #include <linux/input.h>
+-#endif
+
+ QT_BEGIN_NAMESPACE
+
diff --git a/devel/qt6-base/files/patch-src_platformsupport_input_evdevtouch_qevdevtouchhandler.cpp b/devel/qt6-base/files/patch-src_platformsupport_input_evdevtouch_qevdevtouchhandler.cpp
new file mode 100644
index 000000000000..d4f725ce6e87
--- /dev/null
+++ b/devel/qt6-base/files/patch-src_platformsupport_input_evdevtouch_qevdevtouchhandler.cpp
@@ -0,0 +1,14 @@
+--- src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp.orig 2022-05-25 08:58:52 UTC
++++ src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp
+@@ -53,11 +53,7 @@
+
+ #include <mutex>
+
+-#ifdef Q_OS_FREEBSD
+-#include <dev/evdev/input.h>
+-#else
+ #include <linux/input.h>
+-#endif
+
+ #ifndef input_event_sec
+ #define input_event_sec time.tv_sec
diff --git a/devel/qt6-base/pkg-descr b/devel/qt6-base/pkg-descr
new file mode 100644
index 000000000000..cc23400cc6b0
--- /dev/null
+++ b/devel/qt6-base/pkg-descr
@@ -0,0 +1,3 @@
+Qt Base
+
+WWW: https://www.qt.io/
diff --git a/devel/qt6-base/pkg-plist b/devel/qt6-base/pkg-plist
new file mode 100644
index 000000000000..60595f5486d9
--- /dev/null
+++ b/devel/qt6-base/pkg-plist
@@ -0,0 +1,3746 @@
+bin/qmake6
+%%QT_INCDIR%%/QtConcurrent/QtConcurrent
+%%QT_INCDIR%%/QtConcurrent/QtConcurrentDepends
+%%QT_INCDIR%%/QtConcurrent/QtConcurrentFilter
+%%QT_INCDIR%%/QtConcurrent/QtConcurrentMap
+%%QT_INCDIR%%/QtConcurrent/QtConcurrentRun
+%%QT_INCDIR%%/QtConcurrent/QtConcurrentVersion
+%%QT_INCDIR%%/QtConcurrent/qtaskbuilder.h
+%%QT_INCDIR%%/QtConcurrent/qtconcurrent_global.h
+%%QT_INCDIR%%/QtConcurrent/qtconcurrentcompilertest.h
+%%QT_INCDIR%%/QtConcurrent/qtconcurrentexports.h
+%%QT_INCDIR%%/QtConcurrent/qtconcurrentfilter.h
+%%QT_INCDIR%%/QtConcurrent/qtconcurrentfilterkernel.h
+%%QT_INCDIR%%/QtConcurrent/qtconcurrentfunctionwrappers.h
+%%QT_INCDIR%%/QtConcurrent/qtconcurrentiteratekernel.h
+%%QT_INCDIR%%/QtConcurrent/qtconcurrentmap.h
+%%QT_INCDIR%%/QtConcurrent/qtconcurrentmapkernel.h
+%%QT_INCDIR%%/QtConcurrent/qtconcurrentmedian.h
+%%QT_INCDIR%%/QtConcurrent/qtconcurrentreducekernel.h
+%%QT_INCDIR%%/QtConcurrent/qtconcurrentrun.h
+%%QT_INCDIR%%/QtConcurrent/qtconcurrentrunbase.h
+%%QT_INCDIR%%/QtConcurrent/qtconcurrentstoredfunctioncall.h
+%%QT_INCDIR%%/QtConcurrent/qtconcurrenttask.h
+%%QT_INCDIR%%/QtConcurrent/qtconcurrentthreadengine.h
+%%QT_INCDIR%%/QtConcurrent/qtconcurrentversion.h
+%%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/minimum-linux_p.h
+%%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qabstractanimation_p.h
+%%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qabstracteventdispatcher_p.h
+%%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qabstractfileengine_p.h
+%%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qabstractitemmodel_p.h
+%%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qabstractproxymodel_p.h
+%%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qandroidextras_p.h
+%%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qanimationgroup_p.h
+%%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qbytearray_p.h
+%%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qbytedata_p.h
+%%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qcalendarbackend_p.h
+%%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qcalendarmath_p.h
+%%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qcborcommon_p.h
+%%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qcborvalue_p.h
+%%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qcfsocketnotifier_p.h
+%%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qcoffpeparser_p.h
+%%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qcollator_p.h
*** 11194 LINES SKIPPED ***