Re: git: 66259c9c641b - main - Qt6: Import Qt6 ports form kde@'s repository
- Reply: Tobias C. Berner: "Re: git: 66259c9c641b - main - Qt6: Import Qt6 ports form kde@'s repository"
- Reply: Tobias C. Berner: "Re: git: 66259c9c641b - main - Qt6: Import Qt6 ports form kde@'s repository"
- In reply to: Tobias C. Berner: "git: 66259c9c641b - main - Qt6: Import Qt6 ports form kde@'s repository"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 22 Aug 2022 08:53:12 UTC
On Sun, Aug 21, 2022 at 6:46 PM Tobias C. Berner <tcberner@freebsd.org> wrote:
>
> 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
> +
I'm not very familiar with qt.mk, but 3d, declarative, doc,
imageformats... are in both _QT5_DISTS and _QT6_DISTS. Shouldn't they
be in _USE_QT_ALL then?
Only shadertools, tools and translations are declared in _QT6_DISTS
and not in _QT5_DISTS
Cheers.
> _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 ***