The Qt WebEngine module provides a web browser engine that makes it easy to
embed content from the World Wide Web into your Qt application on platforms
that do not have a native web engine.
Qt WebEngine provides C++ classes and QML types for rendering HTML, XHTML, and
SVG documents, styled using Cascading Style Sheets (CSS) and scripted with
JavaScript. HTML documents can be made fully editable by the user through the
use of the contenteditable attribute on HTML elements.
===> The following configuration options are available for qt6-webengine-6.11.2:
DRIVER=on: Install WebEngineDriver
PIPEWIRE=on: PipeWire multimedia server support
RUST=off: Build with Rust (experimental)
====> Audio backend: you have to select exactly one of them
ALSA=on: ALSA audio architecture support
PULSEAUDIO=off: PulseAudio sound server support
SNDIO=off: Sndio audio support
===> Use 'make config' to modify these settings
www/qt6-webengine: add powerpc64le support
The architecture layer is derived from Chimera Linux's qt6-qtwebengine
ppc64le patchset, reduced to the files FreeBSD actually compiles and
adapted to FreeBSD:
- gn: map uname -m "powerpc" to ppc64 in host arch detection
- cmake/QtToolchainHelpers: map power64 to the ppc64 GN arch
- build/config/compiler: don't force a Linux target triple on BSD
- PartitionAlloc: ppc64 GN wiring, dynamic-page-size ASLR variant on BSD
(as for arm64), pin kAlignment to 16 (alignof(max_align_t) is 8 while
long double is 64-bit)
- v8: POWER8 baseline with AltiVec/VSX; make
Assembler::kMaximalBufferSize public, as the 6.11.2 baseline compiler
needs it
- base: define kThreadPriorityToNiceValueMapForTest on BSD; on ppc64 the
(Only the first 15 lines of the commit message are shown above )
www/qt6-webengine: do not special-case the version of node on i386.
In the past the build of this port would hang when using the
then-current www/node22 on i386, but a test build on 14.4-i386
with multiple parallel jobs went fine.
PR: 299234
Approved by: kde (makc)
Qt6: Update to 6.11.2
Aug 18, 2026 by Jani Heikkinen
Qt 6.11.2 is now available for download. As a patch release, Qt 6.11.2
doesn’t introduce new features, but it delivers around 400 bug fixes,
security improvements, and quality enhancements on top of Qt 6.11.1.
For a full overview of the most notable changes, take a look at the
Qt 6.11.2 release notes.
Announcement:
https://www.qt.io/blog/qt-6.11.2-released
Release notes:
https://code.qt.io/cgit/qt/qtreleasenotes.git/about/qt/6.11.2/release-note.md
PySide6: Update to 6.11.2
MFH: 2026Q3
Security: a188c081-9ce8-11f1-8fc6-cb9659fdabad
all: expire direct consumers of www/node20 on 2026-09-30
This happens to be the date when www/qt5-webengine expires, which
is also a node20 consumer (on i386, same for qt6-webengine).
www/qt6-webengine: fix running under wayland
When starting, chromium calls GpuFence::Wait() which was not implemented
on FreeBSD, on linux is calls sync_wait which does not exist on FreeBSD.
Hopefully drm sync fence fds do support polling and it seems to do the
trick.
While here tell chromium we don't have sync_fence_info() so it does not
try to go further at the risk of reaching another NOTREACH() which would
trigger a crash
PR: 287599
Qt6: Update to 6.10.2
January 29, 2026 by Jani Heikkinen
Qt 6.10.2 is now available for download. As a patch release, Qt 6.10.2
doesn’t introduce new features, but it delivers around 300 bug fix,
security improvements, and quality enhancements on top of Qt 6.10.1.
For a full overview of the most notable changes, take a look at the Qt
6.10.2 release notes.
Announcement:
https://www.qt.io/blog/qt-6.10.2-released
Release notes:
https://code.qt.io/cgit/qt/qtreleasenotes.git/about/qt/6.10.2/release-note.md
(Only the first 15 lines of the commit message are shown above )
Qt6: Update to 6.10.1
I'm not giving the usual fanfare. This has been an absolute slog.
Ports changes:
qt6-base: Added WAYLAND option. This is congruent with the X11 option.
We really don't recommend disabling this option, but it is
available for advanced users who don't want wayland for
whatever reason.
Qt6: Update to 6.9.3
September 30, 2025 by Jani Heikkinen
The last release from the Qt 6.9 series, Qt 6.9.3, is now available for
download. As a patch release, Qt 6.9.3 does not introduce new features
but delivers over 250 bug fixes, security updates, and enhancements on
top of the Qt 6.9.2 release. For a detailed breakdown of the most
significant changes, refer to the Qt 6.9.3 release notes.
Announcement:
https://www.qt.io/blog/qt-6.9.3-released
Release notes:
https://code.qt.io/cgit/qt/qtreleasenotes.git/about/qt/6.9.3/release-note.md
(Only the first 15 lines of the commit message are shown above )
www/qt6-webengine: fix build on armv7
Known node issue that has already been fixed before.
Obtained from: www/node20/files/patch-deps_v8_src_codegen_arm_cpu-arm.c
Approved by: portmgr (build fix blanket)
MFH: 2025Q3
Qt6: Update to 6.9.2
August 27, 2025 by Jani Heikkinen
We are excited to announce the release of Qt 6.9.2! As a patch release,
Qt 6.9.2 does not introduce new features but delivers over 550 bug fixes,
security updates, and enhancements on top of the Qt 6.9.1 release. For a
detailed breakdown of the most significant changes, refer to the
Qt 6.9.2 release notes.
Announcement:
https://www.qt.io/blog/qt-6.9.2-released
Release notes:
https://code.qt.io/cgit/qt/qtreleasenotes.git/about/qt/6.9.2/release-note.md
MFH: 2025Q3
Security: edf83c10-83b8-11f0-b6e5-4ccc6adda413
2a11aa1e-83c7-11f0-b6e5-4ccc6adda413
www/qt6-webengine: Move PORTREVISION comment
Move inline PORTREVISION comment overhead to prevent editing by overly
enthusiastic custom scripts and to prevent errors from standard tools
like Tools/scripts/bump-revison.sh. We'll have qt7 eventually, but it
will likely be a few years off.
Fixes: 3068854dd026 - libxml2: chase libxml soversion bump
*/*: Bump multimedia/openh264 consumers after dc94e01
net/freerdp{,3} have been already bumped in e447cd0, so not being bumped
again.
Bumped by the following one-liner:
$ git grep -l libopenh264 | \
grep '^.*/.*/Makefile$'| \
xargs -t -n1 portedit bump-revision -i
Approved by: portmgr (blanket)
www/qt6-webengine: fix build on armv7
Restore a patch that was accidentally dropped during the update to
6.9.1.
Fixes: 03b02222d63f08742cf723fd8eeee26465ae3e39
MFH: 2025Q3
Approved by: portmgr (build fix blanket)
Qt6: Update to 6.9.1
June 03, 2024 by Jani Heikkinen
We have released Qt 6.9.1 today. As a patch release, Qt 6.9.1 does not
introduce new features but contains more than 450 bug fixes, security
updates, and other improvements on top of Qt 6.9.0 release. See more
information about the most important changes and bug fixes from the Qt
6.9.1 release note.
Announcement: https://www.qt.io/blog/qt-6.9.1-released
Release note:
https://code.qt.io/cgit/qt/qtreleasenotes.git/about/qt/6.9.1/release-note.md
We (kde@) skipped shipping Qt 6.9.0 due to unacceptable rendering bugs
(Only the first 15 lines of the commit message are shown above )
www/qt6-webengine: Fix build with gperf >= 3.2
Blink was making no longer needed substitutions to the generated code
adding extra [[fallthrough]] attributes which caused build errors.
Thanks to dinoex for working through this with me.
PR: 286084
Obtained from: Gentoo
Qt6: Update to 6.8.3
March 27, 2025 by Jani Heikkinen
We have released Qt 6.8.3 today. As a patch release, Qt 6.8.3 does not
introduce new features but contains more than 300 bug fixes, security updates,
and other improvements on top of the Qt 6.8.2 release. See more information
about the most important changes and bug fixes from Qt 6.8.3 release note.
Qt for Python 6.8.3 has also been released by its usual means along with the
Qt 6.8.3 release.
Announcement:
https://www.qt.io/blog/qt-6.8.3-released
Release note:
https://code.qt.io/cgit/qt/qtreleasenotes.git/about/qt/6.8.3/release-note.md
Security: 7cb6642c-0c5a-11f0-8688-4ccc6adda413
Qt6: Update to 6.8.2
January 31, 2025
We have released Qt 6.8.2 today. As a patch release, Qt 6.8.2 does not
introduce new features but contains more than 450 bug fixes, security
updates, and other improvements on top of Qt 6.8.1 release. See more
information about the most important changes and bug fixes from the
Qt 6.8.2 release note.
Announcement:
https://www.qt.io/blog/qt-6.8.2-released
Release note:
https://code.qt.io/cgit/qt/qtreleasenotes.git/about/qt/6.8.2/release-note.md
MFH: 2025Q1
Security: 72b8729e-e134-11ef-9e76-4ccc6adda413
Qt6: Update to 6.8.1
December 02, 2024
We (Qt upstream) have released Qt 6.8.1 today. As a patch release,
Qt 6.8.1 does not introduce new features but contains more than 550 bug
fixes, security updates, and other improvements on top of Qt 6.8.0
release. See more information about the most important changes and bug
fixes from the Qt 6.8.1 release note.
Announcement: https://www.qt.io/blog/qt-6.8.1-released
Release note:
https://code.qt.io/cgit/qt/qtreleasenotes.git/about/qt/6.8.1/release-note.md
We (kde@) skipped shipping Qt 6.8.0 due to waiting for a compatible
version of PyQt to be released, but here are the announcements and
(Only the first 15 lines of the commit message are shown above )
www/qt6-webengine: Address multiple vulnerabilities
Includes security patches up to Chromium 131.0.6778.108.
MFH: 2024Q4
Security: c2fd83e4-b450-11ef-b680-4ccc6adda413
www/qt6-webengine: Address multiple vulnerabilities
Includes security patches up to Chromium 130.0.6723.116.
MFH: 2024Q4
Security: 889eddee-a964-11ef-b680-4ccc6adda413
Qt6: Update to 6.7.3
As a patch release, Qt 6.7.3 does not introduce new features but
contains more than 400 bug fixes, security updates, and other
improvements to the top of the Qt 6.7.2 release. See more information
about the most important changes and bug fixes from Qt 6.7.3 release
note.
PySide6: Update to 6.7.3
New port: devel/qt6-grpc
Qt GRPC is the client-side implementation that, together with the Qt
Protobuf module, allows the definition of messages and services in
.proto files, which then use the provided code generators to generate
client code that allows the access for fields and gRPC services in the
Qt framework. The code generated by Qt GRPC enables the client-side to
communicate with a gRPC server (regardless of whether the server uses
Qt) by sending calls or streaming messages.
Announcement: https://www.qt.io/blog/qt-6.7.3-released
Release note:
https://code.qt.io/cgit/qt/qtreleasenotes.git/about/qt/6.7.3/release-note.md
Revert "www/qt6-webengine: fix build with clang and libc++ 19"
These changes are included in the 6.7.3 release of qt6-webengine.
This reverts commit 2c14b6e0b4af03bff9cefe5a9288d6b7450755d8.
www/qt6-webengine: fix build with clang and libc++ 19
Clang 19 now implements CWG 96 [1], which requires a template
argument list after a 'template' keyword, resulting in errors similar
to:
../../../../../qtwebengine-everywhere-src-6.7.2/src/3rdparty/chromium/third_party/perfetto/include/perfetto/tracing/internal/track_event_data_source.h:331:20:
error: a template argument list is expected after a name prefixed by the
template keyword [-Wmissing-template-arg-list-after-template-kw]
331 | Base::template Trace([](typename Base::TraceContext ctx) {
ctx.Flush(); });
| ^
../../../../../qtwebengine-everywhere-src-6.7.2/src/3rdparty/chromium/third_party/perfetto/include/perfetto/tracing/internal/track_event_data_source.h:337:20:
error: a template argument list is expected after a name prefixed by the
template keyword [-Wmissing-template-arg-list-after-template-kw]
337 | Base::template CallIfEnabled(
| ^
../../../../../qtwebengine-everywhere-src-6.7.2/src/3rdparty/chromium/third_party/perfetto/include/perfetto/tracing/internal/track_event_data_source.h:352:20:
error: a template argument list is expected after a name prefixed by the
template keyword [-Wmissing-template-arg-list-after-template-kw]
352 | Base::template Trace([&](typename Base::TraceContext ctx) {
| ^
(Only the first 15 lines of the commit message are shown above )
www/qt6-webengine: Fix build on recent -CURRENT
Due to recent changes in string.h, the regex in our local patch for the
bundled nasm to check whether mempcpy(3) was available no longer worked.
This caused it to use its own implementation which caused an error due
to a declaration conflict.
Since all currently supported versions of FreeBSD have mempcpy(3), this
patch is no longer needed.
PR: 280376
Qt6: Update to 6.7.2
June 19, 2024
We have released Qt 6.7.2. As a patch release, Qt 6.7.2 does not
introduce new features but contains more than 200 bug fixes, security
updates, and other improvements on the top of the Qt 6.7.1 release.
See more information about the most important changes and bug fixes
from the Qt 6.7.2 release note.
Announcement: https://www.qt.io/blog/qt-6.7.2-released
Release note:
https://code.qt.io/cgit/qt/qtreleasenotes.git/about/qt/6.7.2/release-note.md
MFH: 2024Q2
Security: c5415838-2f52-11ef-9cab-4ccc6adda413
Qt6: Update to 6.7.1
As a patch release, Qt 6.7.1 does not introduce any new features but
contains more than 400 bug fixes, security updates, and other
improvements to the top of the Qt 6.7.0 release. See more information
about the most important changes and bug fixes from Qt 6.7.1 release
note.
Enable building of databases/qt6-base_sqldriver@mysql with MariaDB. [1]
Fix build of www/qt6-webengine with the SNDIO option enabled. [2]
Announcement: https://www.qt.io/blog/qt-6.7.1-released
Release note:
https://code.qt.io/cgit/qt/qtreleasenotes.git/about/qt/6.7.1/release-note.md
PR: 277922 [1], 279180 [2]
Reported by: vvd [1], Benjamin Takacs <[email protected]> [2]
MFH: 2024Q2
Security: f5fa174d-19de-11ef-83d8-4ccc6adda413
Qt6: Update to 6.7.0
Qt 6.7 is out with lots of large and small improvements for all of us
who like to have fun when building modern applications and user
experiences, focusing on the expansion of supported platforms and
industry standards. This makes code written with Qt more sustainable
and brings more value in Qt as a long-term investment.
www/qt6-webengine is now based on Chromium version 118.0.5993.220.
Announcement: https://www.qt.io/blog/qt-6.7-released
Release note:
https://code.qt.io/cgit/qt/qtreleasenotes.git/about/qt/6.7.0/release-note.md
PySide6: Update to 6.7.0
(Only the first 15 lines of the commit message are shown above )
www/qt6-webengine: fix build with clang 18
Clang 18 has become more stringent about narrowing in initializer lists,
resulting in errors when building www/qt6-webengine:
../../../../../qtwebengine-everywhere-src-6.6.1/src/3rdparty/chromium/third_party/webrtc/pc/legacy_stats_collector.cc:192:54:
error: non-constant-expression cannot be narrowed from type 'double' to 'float'
in initializer list [-Wc++11-narrowing-const-reference]
192 | {StatsReport::kStatsValueNameTotalAudioEnergy,
info.total_output_energy},
|
^~~~~~~~~~~~~~~~~~~~~~~~
../../../../../qtwebengine-everywhere-src-6.6.1/src/3rdparty/chromium/third_party/webrtc/pc/legacy_stats_collector.cc:194:8:
error: non-constant-expression cannot be narrowed from type 'double' to 'float'
in initializer list [-Wc++11-narrowing-const-reference]
194 | info.total_output_duration}};
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
Cherry-pick https://webrtc.googlesource.com/src/+/267f9bdd53 into the
thirdparty directory, which fixes these errors.
PR: 276997
MFH: 2024Q1
Qt6: Update to 6.6.1
As a patch release, Qt 6.6.1 does not introduce any new features but
contains more than 400 bug fixes, security updates, and other
improvements to the top of the Qt 6.6.0 release. See more information
about the most important changes and bug fixes from the Qt 6.6.1 release
note.
To allow building www/qt6-webengine without CUPS, a CUPS option has been
added and the Pdf module has been split out to a new port: print/qt6-pdf.
This also allows building devel/py-qt6-pyqt without pulling in the unused
WebEngine module. Fixes [1].
Remove a lot of unused dependencies. Fixes [2]. Also remove inconsistent
WWW lines from the individual Makefiles as WWW is alreay defined in
(Only the first 15 lines of the commit message are shown above )
www/qt6-webengine: fix build on armv6/armv7 (again)
Re-add an extra file to the build that was accidentally deleted in a
previous update to the port.
Approved by: portmgr (build fix blanket)
Fixes: 9a0a6ca38c78e60b3afc10152daad948a1f001c7
MFH: 2023Q4
PR: 272422
www/qt6-webengine: fix build with libc++ 17
Building www/qt6-webengine with libc++ 17 results in the following
compile errors:
In file included from gen/base/base_jumbo_2.cc:7:
In file included from
./../../../../../qtwebengine-everywhere-src-6.5.3/src/3rdparty/chromium/base/check.cc:17:
In file included from
../../../../../qtwebengine-everywhere-src-6.5.3/src/3rdparty/chromium/base/debug/crash_logging.h:16:
In file included from
../../../../../qtwebengine-everywhere-src-6.5.3/src/3rdparty/chromium/base/strings/string_number_conversions.h:15:
In file included from
../../../../../qtwebengine-everywhere-src-6.5.3/src/3rdparty/chromium/base/containers/span.h:18:
../../../../../qtwebengine-everywhere-src-6.5.3/src/3rdparty/chromium/base/containers/checked_iterators.h:241:8:
error: no template named '__is_cpp17_contiguous_iterator'; did you mean
'__libcpp_is_contiguous_iterator'?
241 | struct
__is_cpp17_contiguous_iterator<::base::CheckedContiguousIterator<T>>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| __libcpp_is_contiguous_iterator
/usr/include/c++/v1/__iterator/iterator_traits.h:476:8: note:
'__libcpp_is_contiguous_iterator' declared here
(Only the first 15 lines of the commit message are shown above )
www/qt6-webengine: Really disable PCH
Due to the way qt_evaluate_config_expression()[1] parses conditions,
De Morgan's Laws do not apply. This function is internal to the Qt
build process and this behavior may be by design for simplicity.
NOT (A OR B) defies logic and always evaluates to NOT A OR B, so we
must express this as NOT A AND NOT B instead to get the desired result.
Disabling PCH (pre-compiled headers) greatly decreases build time,
especially with ccache and should fix the build on arm64 (not tested).
../../../../../qtwebengine-everywhere-src-6.5.3/src/3rdparty/chromium/base/strings/string_util.h:51:3:
error: non-const lvalue reference to type '__builtin_va_list' cannot bind to a
value of unrelated type 'va_list' (aka 'std::__va_list')
va_start(arguments, format);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/sys/_stdarg.h:45:49: note: expanded from macro 'va_start'
#define va_start(ap, last) __builtin_va_start((ap), (last))
^~~~
[1] https://code.qt.io/cgit/qt/qtbase.git/tree/cmake/QtFeature.cmake?h=6.5.3#n84
www/qt6-webengine: Switch to bundled re2
* Prepare the port for newer versions of devel/re2, which also require
devel/abseil. This combination however causes build errors [1] due
to missing symbols:
[...]
In file included from gen/extensions/browser/browser_sources_jumbo_8.cc:6:
./../../../../../qtwebengine-everywhere-src-6.5.2/src/3rdparty/chromium/extensions/browser/api/web_request/form_data_parser.cc:429:11:
error: no member named 'set' in 'absl::string_view'
source_.set(source.data(), source.size());
~~~~~~~ ^
./../../../../../qtwebengine-everywhere-src-6.5.2/src/3rdparty/chromium/extensions/browser/api/web_request/form_data_parser.cc:573:11:
error: no member named 'set' in 'absl::string_view'
source_.set(source.data(), source.size());
~~~~~~~ ^
[...]
(Only the first 15 lines of the commit message are shown above )
www/qt6-webengine: Update to 6.5.0
Under the hood runs Chromium 108.0.5359.181 with security patches up to
Chromium 110.0.5481.104. Most of the patches were taken of from
Chromium 108.0.5359.124 (7ae5e0e6d6ee).
Build tests so far:
- 14.0-CURRENT@ amd64@df2fbbfa71
- 13.2-RELEASE amd64 ALSA
- 13.1-RELEASE amd64 ALSA
- 12.4-RELEASE amd64 + i386 (ALSA/PULSE/SNDIO)
Runtime tests with 12.4-RELEASE so far without issues.
PR: 272422
Exp-run by: antoine
www/qt6-webengine: fix build on armv7
Improve two patches with more complete variants from devel/electron19.
Patch bundled boringssl with additional patches from the same port.
Avoid an OOM condition by using the same extra patch previously only
used on i386. In that patch, decreate BROTLI_PARAM_QUALITY further
to 4 to avoid flakiness on armv7.
Obtained from: devel/electron19
Approved by: kai (with hat: kde, maintainer)
PR: 271228
www/qt6-webengine: unbreak build on aarch64 (+)
Backport Skia m103 changes to eliminate build error on arm64/aarch64:
In file included from
../../../../../qtwebengine-everywhere-src-6.4.2/src/3rdparty/chromium/third_party/skia/src/core/SkOpts.cpp:46:
../../../../../qtwebengine-everywhere-src-6.4.2/src/3rdparty/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h:1007:5:
warning: 'memcpy' will always overflow; destination buffer has size 2, but
size argument is 8 [-Wfortify-source]
memcpy(&fp16, &h, sizeof(U16));
^
../../../../../qtwebengine-everywhere-src-6.4.2/src/3rdparty/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h:1032:19:
error: functional-style cast from 'neon::F' (aka 'V<float>') to '__fp16'
is not allowed
__fp16 fp16 = __fp16(f);
^~~~~~~~
1 warning and 1 error generated.
Sponsored by: Serenity Cybersecurity, LLC
www/qt6-webengine: NEW PORT
The Qt WebEngine module provides a web browser engine that makes it easy
to embed content from the World Wide Web into your Qt application on
platforms that do not have a native web engine.
Qt WebEngine provides C++ classes and QML types for rendering HTML,
XHTML, and SVG documents, styled using Cascading Style Sheets (CSS) and
scripted with JavaScript. HTML documents can be made fully editable by
the user through the use of the contenteditable attribute on HTML
elements.
Most of the patches were taken from Chromium 102.0.5005.115
(6fbdece63f38) and a small portion also from Chromium 105.0.5195.102
(96b9a69e7010) , which has been required since Qt 6.4.1.
(Only the first 15 lines of the commit message are shown above )