Re: git: 66259c9c641b - main - Qt6: Import Qt6 ports form kde@'s repository

From: Tobias C. Berner <tcberner_at_freebsd.org>
Date: Mon, 22 Aug 2022 10:16:43 UTC
Moin moin

On Mon, 22 Aug 2022 at 10:56, Fernando Apesteguía
<fernando.apesteguia@gmail.com> wrote:
>
> 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
yes, there's still some cleanup/merging of those lists required.

mfg Tobias

>
> 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 ***