It was again a long journey to bring the port in sync with the other Qt5
ports. It runs now under the hood with Chromium 69.0.3497.128 and applied
security fixes up to version 71.0.3578.94.
Also the approach with the handling of the BUILD.gn files has changed. With
the previous version of www/qt5-webengine (and www/chromium up to r449991) the
boolean variables "is_bsd" and "is_posix" were set to true in BUILDCONFIG
when FreeBSD was detected as operating system during the build process.
Now the boolean variable "is_linux" is set to true as well and this reduces
some patching of BUILD.gn files. It makes it (hopefully) also somewhat easier
to exclude Linux-only features from future www/qt5-webengine versions.
The .debug entries in the pkg-plist are prefixed with @comment each as a
temporary workaround because building with "separate_debug_info" fails to
build QtWebEngineProcess at the moment. (see also: QTBUG-74312)
Many kudos must go to the FreeBSD Chromium team for their ongoing efforts to
keep the browser in a good shape. I was able to use a decent amount of
patches from there which sped up the whole process.
At last but not least: Many thanks must also go to rakuco@ for finding the
last pieces to make www/qt5-webengine more usable and tcberner@ for the moral
support during the whole time.
Changelogs:
https://code.qt.io/cgit/qt/qtwebengine.git/tree/dist/changes-5.12.0https://code.qt.io/cgit/qt/qtwebengine.git/tree/dist/changes-5.12.1
PR: 234470 [1] (related), 235075 [2]
Reported by: Michael Danilov [2], aeuii@posteo.de [1]
Reviewed by: rakuco, tcberner (mentor)
Approved by: rakuco, tcberner (mentor), kde (maintainer)
Differential Revision: https://reviews.freebsd.org/D18757
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.
However, configure.json checks done in a subdirectory only propagates to
subdirectories, and checks elsewhere will fail if all .pro files are being
parsed at once (i.e. qmake -recursive), so several ports had to switch to
USES=qmake:norecursive along with manual additional qmake invocations in
subdirectories in order to work. It's been mentioned in a few places such
as Qt's bug tracker that qmake's recursive mode is pretty much deprecated,
so we might switch to non-recursive mode by default in the future.
- Uses/qmake.mk: Introduce QMAKE_CONFIGURE_ARGS. qmake now accepts
arbitrary options such as '-foo' and '-no-bar' at the end of the
command-line. They can be specified in QMAKE_CONFIGURE_ARGS.
- graphics/qt5-wayland: The port can only be built if graphics/mesa-libs is
built with the WAYLAND option, so a corresponding option (off by default)
was added to the port.
- misc/qt5-doc: Switch to a pre-built documentation tarball. The existing
port was not working with Qt 5.9. Instead of trying to fix it, switch to
what Gentoo does and fetch a tarball that already contains all
documentation so that we do not have to build anything at all. The
tarball's name and location in download.qt.io look a bit weird, but it
seems to work fine.
- www/qt5-webengine: Use binutils from ports, Chromium's GN build system
generates a build.ninja that uses ar(1) with the @file syntax that is not
supported by BSD ar, so we need to use GNU ar from binutils.
- x11-toolkits/qt5-declarative-render2d: This port was merged into the main
Qt Declarative repository upstream, and into x11-toolkits/qt5-quick in the
ports tree.
Changes to other ports we had to make:
- biology/ugene: Drop a '#define point "."' that is not present in more
recent versions of the port. Defining a macro with such a common name
causes build issues with Qt 5.9, which uses |point| as an argument name in
methods.
- cad/qelectrotech: Fix plist with Qt 5.9. Directories are no longer
installed with `cp -f -R', but rather `qmake install qinstall', which does
not install
%%DATADIR%%/elements/10_electric/20_manufacturers_articles/bosch_rexroth/.directory
That's a local file that should not even have been part of the tarball
anyway.
- chinese/gcin-qt5: Add additional private Qt directories (which should not
be used in the first place) to get the port to build with Qt 5.9.
- devel/qtcreator: Fix plist with Qt 5.9. Something changed in qdoc and some
test classes no longer generate documentation files.
- security/keepassx-devel: Import a patch sent upstream almost a year ago to
fix the build with Qt 5.9.
Thanks to antoine for the exp-run, and tcberner and Laurent Cimon
<laurent@nuxi.ca> for landing changes in our qt-5.9 branch.
PR: 224849