Qt is a cross-platform application and UI framework for developers
using C++ or QML, a CSS/JavaScript-like language.
With Qt, code can be reused efficiently to target multiple platforms
with one code base. The modular C++ class library and developer tools
easily enables developers to create applications for one platform and
easily build and run to deploy on another platform.
WWW: http://qt-project.org

Fix Qt5 symbol version scripts to put the catch-all clause first. When
a symbol matches multiple clauses the last one takes precedence. If the
catch-all is last it captures everything. In the case of Qt5 libraries
this caused all symbols to have a Qt_5 label while some should have
Qt_5_PRIVATE_API. This only affects lld because GNU ld always gives the
catch-all lowest priority.
Older versions of Qt5Webengine exported some memory allocation symbols from
the bundled Chromium. Version 5.9 stopped exporting these [1] but the
symbols were kept as weak wrappers for the standard allocation functions to
maintain binary compatibility. [2][3] The problem is that the call to the
standard function in these weak wrappers is only resolved to the standard
function if there's a call to this standard function in other parts of
Qt5Webengine, because only then is there a non-weak symbol that takes
precedence over the weak one. If there's no such non-weak symbol the call

Bump PORTREVISION for ports depending on the canonical version of GCC
defined via Mk/bsd.default-versions.mk which has moved from GCC 7.4 t
GCC 8.2 under most circumstances.
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c11, c++0x, c++11-lang,
c++11-lib, c++14-lang, c++17-lang, or gcc-c++11-lib
plus, as a double check, everything INDEX-11 showed depending on lang/gcc7.
PR: 231590

Bump PORTREVISION for ports depending on the canonical version of GCC
in the ports tree (via Mk/bsd.default-versions.mk and lang/gcc) which
has now moved from GCC 6 to GCC 7 by default.
This includes ports
- featuring USE_GCC=yes or USE_GCC=any,
- featuring USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and those
- with USES=compiler specifying one of openmp, nestedfct, c11, c++0x,
c++11-lib, c++11-lang, c++14-lang, c++17-lang, or gcc-c++11-lib.
PR: 222542

Update the Qt5 ports to 5.10.1.
The work was done by tcberner and myself, with thanks to antoine for the
exp-run.
Not a lot to report compared to other Qt5 updates:
* net/qt5-network is still broken with LibreSSL. I said this in a commit
message ages ago but it bears repeating: upstream is open to adding support
for LibreSSL, but someone needs to step up to maintain it upstream, otherwise
things will continue to be broken all the time.
* www/qt5-webengine is a huge monster that is terrible to update, just like
www/chromium itself is. We (kde@) have decided to keep using the 5.9 series
for the time being, as it should be compatible with the rest of Qt anyway. It
was updated to 5.9.5, the latest 5.9 release at the time of writing.
PR: 228213

Fix permissions in installed Qt5 header files
For the qt5-* ports bsd.qt.mk sets EXTRACT_AFTER_ARGS, and
thereby does not get the normal default value of
--no-same-owner --no-same-permissions
passed when extracting. This lead to for example header files
being installed (i.e. copied), with permissions group write
permissions.
Manually append that to the bsd.qt.mk shenanigans (also do the
same in www/qt5-webchannel, which opts out of the bsd.qt.mk value)
PR: 227027
Reported by: grarpamp@gmail.com

Update Qt5 to 5.9.4.
Announcement:
https://blog.qt.io/blog/2018/01/23/qt-5-9-4-released/
This is a minor update and a lot easier to land than the previous 5.7.1 ->
5.9.3 commit.
Thanks to antoine for the exp-run.
PR: 225436

Update Qt5 ports to 5.9.3.
This took quite a lot of time because Qt's own build system underwent
several changes in 5.8.0 that took a while to adapt to.
And, of course, qt5-webengine is a behemoth that we need to patch like crazy
due to its bundling of Chromium. In fact, most of the Chromium patches in
qt5-webengine have been imported with no changes from www/chromium@433510
("www/chromium: update to 56.0.2924.87").
New port: accessibility/qt5-speech
Bigger changes to Qt5 ports we had to make:
- Qt now allows using a configure.json file to define configuration options
and specify configuration checks that can be done when qmake is invoked.

Mark broken on powerpc64. Apparently this was being worked on upstream
(see PRs 204923, 201529, 217762) but there has been no action for several
months.
PR: 219112 (partial)
Approved by: portmgr (tier-2 blanket), maintainer timeout

Bump PORTREVISION for ports depending on the canonical version of GCC
(via Mk/bsd.default-versions.mk and lang/gcc) which has moved from
GCC 5.4 to GCC 6.4 under most circumstances.
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c++11-lib, c++11-lang,
c++14-lang, c++0x, c11, or gcc-c++11-lib.
PR: 219275

New port: graphics/qt5-wayland
Marketing blurb [1]:
QtWayland is a Qt 5 module that wraps the functionality of Wayland.
QtWayland is separated into a client and server side. The client side
is the wayland platform plugin, and provides a way to run Qt applications
as Wayland clients. The server side is the QtCompositor API, and allows
users to write their own Wayland compositors.
This is mostly needed at the moment to make upstream KDE-CI happy, therefore
we don't wire it into the metaport devel/qt5.
It requires a little change to devel/qt5-qmake, as we needed to modify the
installed bsd.conf to know about wayland/egl.
Created together with Adriaan de Groot <groot@kde.org>.
Reviewed by: rakuco, groot_kde.org
Differential Revision: https://reviews.freebsd.org/D11744

Do not use gold linker for Qt5 ports.
gold linker from binutils 2.28 may produce duplicate library
symbols, which makes shared libraries created with it not usable
with conventional ld linker.
PR: 218187
Submitted by: amdmi3

Bump PORTREVISIONs for ports depending on the canonical version of GCC and
lang/gcc which have moved from GCC 4.9.4 to GCC 5.4 (at least under some
circumstances such as versions of FreeBSD or platforms).
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using using Mk/bsd.octave.mk which in turn has USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c++11-lib, c++14-lang,
c++11-lang, c++0x, c11, or gcc-c++11-lib.
PR: 216707

Update Qt5 to 5.7.1, and unify the Qt4 and Qt5 ports some more
* Update Qt5 to 5.7.1
* Move Qt4 binaries to lib/qt4/bin
* Move Qt5 libraries to lib/qt5/lib
By moving the libraries we should finally be able to get rid of the inplace
upgrade bug (see ports bugs 194088, 195105 and 198720): when Qt5's libraries
were lying in /usr/local/lib, which would often get added by pkgconfig to the
linker paths via dependencies, the already installed libraries were linked
against, instead of the ones that were being built. This forced us to make
sure, that -L${WRKSRC}/lib was always coming before -L/usr/local/lib in the
linker flags. With this change this should no longer be the case.
* Rename some ports to match the rest (foo-qtX -> qtX-foo)
* Depend on new port misc/qtchooser [see UPDATING & CHANGES]
There are several new Qt5 ports which all have been created by Marie Loise
Nolden
<nolden@kde.org>. Thanks again.
PR: 216797
Exp-Run by: antoine
Reviewed by: rakuco, mat, groot_kde.org
Approved by: rakuco (mentor)
Differential Revision: https://reviews.freebsd.org/D9213