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

From: Fernando_ApesteguĂ­a <fernando.apesteguia_at_gmail.com>
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 ***