source: x/lib/qtwebengine.xml@ ea11b87

11.3 12.0 12.1 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18 xry111/xf86-video-removal
Last change on this file since ea11b87 was ea11b87, checked in by Douglas R. Reno <renodr@…>, 20 months ago

Update to qtwebengine-5.15.11.

  • Property mode set to 100644
File size: 28.2 KB
RevLine 
[ceb3dc7]1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
[21552cf]7 <!ENTITY qtwebengine-major "5.15">
[4eb513e]8<!-- URL if there is a public release
[57e07f4]9 <!ENTITY qtwebengine-download-http "https://download.qt.io/archive/qt/&qtwebengine-major;/&qtwebengine-version;/submodules/qtwebengine-everywhere-src-&qtwebengine-version;.tar.xz">
[4eb513e]10 URL for a prepared git version -->
11 <!ENTITY qtwebengine-download-http "&sources-anduin-http;/qtwebengine/qtwebengine-&qtwebengine-version;.tar.xz">
[ceb3dc7]12 <!ENTITY qtwebengine-download-ftp " ">
[ea11b87]13 <!ENTITY qtwebengine-md5sum "1302667c7e8a045fb0cc776f7e3627ad">
14 <!ENTITY qtwebengine-size "306 MB">
[70e458ba]15 <!ENTITY qtwebengine-buildsize "5.1 GB (152 MB installed)">
[ea11b87]16 <!ENTITY qtwebengine-time "103 SBU (typical, Using parallelism=4)">
[ceb3dc7]17]>
18
19<sect1 id="qtwebengine" xreflabel="qtwebengine-&qtwebengine-version;">
20 <?dbhtml filename="qtwebengine.html"?>
21
22 <sect1info>
23 <date>$Date$</date>
24 </sect1info>
25
26 <title>QtWebEngine-&qtwebengine-version;</title>
27
28 <indexterm zone="qtwebengine">
29 <primary sortas="a-qtwebengine">qtwebengine</primary>
30 </indexterm>
31
32 <sect2 role="package">
33 <title>Introduction to QtWebEngine</title>
34
35 <para>
36 <application>QtWebEngine</application> integrates
[55a55f1]37 <application>chromium</application>'s web capabilities into Qt. It
[a9c0e8d]38 ships with its own copy of ninja which it uses for the build if it cannot
39 find a system copy, and various copies of libraries from ffmpeg, icu,
40 libvpx, and zlib (including libminizip) which have been forked by the
[ceb3dc7]41 <application>chromium</application> developers.
42 </para>
43
[455eec0]44 <para>
45 This package and browsers using it may be useful if you need to use a
46 website designed for google chrome, or chromium, browsers.
47 </para>
48
[4eb513e]49 <!-- Note for editors re switching between git versions and releases:
50 If a public release of Qt 5.15.3 (or later) appears in a meaningful
51 time frame, please keep the notes re the git build, as comments, so
52 that updating for later fixes will be easier: in the past, updates
53 of 'stable' versions (i.e. 5.12 when 5.14, 5.15 were the newest)
54 happened much later than updates to the newest version (now Qt6)
55 and it seems likely we might again need to use a git version to fix
56 future chromium vulnerabilities. -->
57
58 <warning>
[fc0828f]59 <para>
60 QtWebEngine uses a forked copy of chromium, and is therefore vulnerable
61 to many issues found there. The Qt developers have always preferred to
62 make releases at the same time as the rest of Qt (rather than adding
[4eb513e]63 emergency fixes), but with stable versions getting released after the
64 current development version. Now that they are keen to move to Qt6, the
65 5.15.3 and later Qt-5.15 releases are initially only available to paying
66 customers. QtWebEngine is something of an exception because of its LGPL
67 licence, but getting the git sources (with the forked chromium submodule)
68 to a position where they will successfully build on a current BLFS system
69 can take a lot of effort and therefore updates to the book may be delayed.
70 </para>
71
72 <para>
73 It seems likely that future 5.15-series versions will also be released
[fb6d1550]74 long after the chromium vulnerabilities are known, but fixes for
75 QtWebEngine can be found in git and the editors take the view that
76 known vulnerabilities in browsers should be fixed.
[fc0828f]77 </para>
[4eb513e]78
79 <para> <!-- for git versions -->
[9e0ab833]80 The tarball linked to below was created from the 5.15 git branch
[fb6d1550]81 and the 87-branch of the chromium submodule (which is forked from
[47d5b8be]82 chromium). See the GIT-VERSIONS file in the tarball for details of the
83 latest commits.
[4eb513e]84 </para>
85 </warning>
86
87 <!-- note for editors on obtaining webengine from git.
88 First (if you do not already have a past version)
89 git clone git://code.qt.io/qt/qtwebengine.git
90 git submodule init -
91 that will report qtwebengine-chromium.git registered for src/3rdparty
92 now find the main branch names:
93 git fetch origin
94 git branch -r
95 after a release is prepared (even if the rest is not public), the 5.15
[d885388]96 branch now seems to get updated and might be what you want. But in the
97 approach to 5.15.6 the backported CVE and other security fixes were only
98 applied to 5.15.6. So, assuming that a 5.15.7 branch now exists,
99 git checkout origin/5.15.7
[4eb513e]100 Confirm that HEAD is where you expected.
101 Now go to src/3rdparty
102 git fetch origin
103 git branch -r
104 The required branch is likely to be 87-branch unless there is a newer one
[fb6d1550]105 mentioned in the 5.15 cgit web page (below).
[4eb513e]106 git checkout origin/87-branch (or whatever)
107 Use git log or git tk to look at its HEAD and check it seems appropriate.
[ea11b87]108 If this doesn't work, use 'git submodule update'
[4eb513e]109
[fb6d1550]110 To decide when it might be worth creating a new tarball, periodically keep
[d885388]111 an eye on https://code.qt.io/cgit/qt/qtwebengine.git/ (currently, the 5.15.6
112 branch, 5.15.7 might get used later). The interesting items are CVE fixes
[fb6d1550]113 for known chromium vulnerabilities, as well as numbered Security bugs -
114 again, these relate to chromium.
115
116 When I noticed some updates in late March I was searching for one of the
117 CVEs mentioned, and google found a link to a review page for Michael Brüning
118 at https://codereview.qt.nokia.com/q/owner:michael.bruning%2540qt.io. At that
119 time I could see various unmerged items, so I waited. The items for the
[d885388]120 90-based chromium module are not relevant to 5.15-series (possibly they will
121 be for qtwebengine-6+). Review queues for other Qt employees might be found
[fb6d1550]122 in a similar way, but remember that everythng EXCEPT qtwebengine and chromium
123 is private to Qt until they choose to release it.
124
[685b8672]125 NOTE: the 3rdparty/chromium tree may contain more patches than have been
126 merged into the current 5.15.x branch. Any patches after what was in the
[d885388]127 last 'update chromium' merge in qtwebengine occasionally break the build.
[685b8672]128
[fb6d1550]129 After merging the contents of the qtwebengine and src/3rdparty git extracts,
130 in the top level please create a GIT-VERSIONS file summarising the HEAD
[d885388]131 commits of both parts, as a reminder of where we are up to. I've nove added
132 a CVE-fixes to keep track of what has been fixed (comits before 5.15.2 did not
133 mention the CVEs until they were detailed in a release).
[fb6d1550]134
[4eb513e]135 Now create tarballs - 'git archive' does not work across submodule boundaries,
136 so you need to create one archive from the top of qtwebengine/ and another
137 from the top of src/3rdparty (chromium, gn, ninja are apparently all part of
138 the qtwebengine-chromium module). Then in a work area untar the qtwebengine
139 tarball, go down to src/3rdparty and untar the submodule tarball.
140 Decide on what to call the result and create a full xz tarball using tar -cJf.
[685b8672]141
[ea11b87]142 NOTE: To use git archive, use something like this:
143 git archive - -format tar.gz - -output qtwebengine.tar.gz HEAD
144 git archive - -format tar.gz - -output chromium.tar.gz HEAD
145
[685b8672]146 UPDATE: Since we have to host the tarball, and it is over 300MB, it makes
147 sense to create a patch for subsequent fixes (for the first version, 314KB
148 including the updates to the GIT-VERSIONS file). For future updates, view
149 the current updates patch to see the previous commits. When the new commits
150 have been applied, rename the updated version to 'b', but untar the
151 unpatched tarball as 'a' and then diff a to b in the usual manner to get
152 all updates since the tarball was created.
153
154 For our own releases, probably best to create a fresh tarball.
155
[fb6d1550]156 end of note for editors -->
[fc0828f]157
[fa4d97a]158 &lfs112_checked;
[088e7e06]159
[00032e41]160 <warning>
[55a55f1]161 <para>
162 By default, ninja will use all online CPUs +2 (if at least 4 exist),
163 even if they are not available to the current task because the build
[8558044]164 terminal has been restricted with 'taskset'. In BLFS, this package
[00032e41]165 takes more time to build than than any other. In one example,
[8558044]166 the build of this package crashed at about the 90 percent point
167 due to an out of memory problem on a system with 24 cores and 32 GB
[00032e41]168 of memory.
[55a55f1]169 </para>
170
[00032e41]171 <para>
172 To work around this, see the Command Explanations below.
173 </para>
174 </warning>
175
176 <note>
[9e0ab833]177 <para>
178 If you are upgrading and have installed a newer version of <xref
179 linkend='icu'/> since you last installed <xref linkend='qt5'/>, you
180 will need to reinstall Qt5 before upgrading, otherwise the final link
181 of this package will fail with a warning that the version of icu
182 libraries needed by libQt5Core.so may conflict with the version
183 used for this package.
184 </para>
185
[55a55f1]186 <para>
187 Unusually, the shipped GN build system (used to create the Ninja files)
188 requires a static <filename class="libraryfile">libstdc++.a</filename>
189 although the installed libraries correctly use the shared version. If
190 that static library is not present, the build will fail quite quickly.
[5510d3e]191 Please note that if you try to build webengine as part of
192 <application>Qt</application> and the static library is not available,
[baac59c]193 that build will either complete without installing webengine, or else
[d885388]194 fail during the install (both variants were observed in 5.12.0).
[55a55f1]195 </para>
196 </note>
[ceb3dc7]197
198 <bridgehead renderas="sect3">Package Information</bridgehead>
199 <itemizedlist spacing="compact">
200 <listitem>
201 <para>
202 Download (HTTP): <ulink url="&qtwebengine-download-http;"/>
203 </para>
204 </listitem>
205 <listitem>
206 <para>
207 Download (FTP): <ulink url="&qtwebengine-download-ftp;"/>
208 </para>
209 </listitem>
210 <listitem>
211 <para>
212 Download MD5 sum: &qtwebengine-md5sum;
213 </para>
214 </listitem>
215 <listitem>
216 <para>
217 Download size: &qtwebengine-size;
218 </para>
219 </listitem>
220 <listitem>
221 <para>
222 Estimated disk space required: &qtwebengine-buildsize;
223 </para>
224 </listitem>
225 <listitem>
226 <para>
227 Estimated build time: &qtwebengine-time;
228 </para>
229 </listitem>
230 </itemizedlist>
[72119155]231
[1d776f0b]232 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
233 <itemizedlist spacing="compact">
[9e0ab833]234 <!--<listitem>
[1d776f0b]235 <para>
[52249aa]236 Required patch:
[9e0ab833]237 <!\-\- keep links for releases and git versions as a reminder
[94f5f13d]238 that the tarball names names differ
[9e0ab833]239 <ulink url="&patch-root;/qtwebengine-everywhere-src-&qtwebengine-version;-ICU68-2.patch"/> \-\->
[7a9a7b26]240
[86e62cc]241 <ulink url="&patch-root;/qtwebengine-&qtwebengine-version;-5.15.7-1.patch"/>
[685b8672]242 </para>
[9e0ab833]243 </listitem>-->
[685b8672]244 <listitem>
245 <para>
[aebb5271]246 Required patch:
[47d5b8be]247 <ulink url="&patch-root;/qtwebengine-&qtwebengine-version;-build_fixes-1.patch"/>
[927e12e]248 </para>
249 </listitem>
[aebb5271]250 <listitem>
251 <para>
252 Required patch:
253 <ulink url="&patch-root;/qtwebengine-&qtwebengine-version;-ffmpeg5_fixes-1.patch"/>
254 </para>
255 </listitem>
[1d776f0b]256 </itemizedlist>
[72119155]257
[ceb3dc7]258 <bridgehead renderas="sect3">qtwebengine Dependencies</bridgehead>
259
260 <bridgehead renderas="sect4">Required</bridgehead>
261 <!-- the qmake output tends to be misleading. 'khr' is from Mesa -->
262 <para role="required">
[639a5b9]263 <xref linkend="nodejs"/>,
[ceb3dc7]264 <xref linkend="nss"/>,
[70e458ba]265 <xref linkend="pciutils"/>, and
266<!-- <xref linkend="python2"/>, and -->
[ceb3dc7]267 <xref linkend='qt5'/>
268 </para>
269
270 <bridgehead renderas="sect4">Recommended</bridgehead>
271 <note>
272 <para>
273 If these packages are not installed, the build process will compile and
274 install its own (perhaps older) version, with the side effect of
275 increasing build and installed disk space and build time.
276 </para>
277 </note>
278
279 <para role="recommended">
[55a55f1]280 either <xref linkend="alsa-lib"/> or
281 <xref linkend="pulseaudio"/> (or both),
282 <xref linkend="ffmpeg"/>,
[d885388]283 <!-- awkward wording - libxslt needs libxml2, if libxml2 is built
284 before icu then the *shipped* icu will be used -->
285 <xref linkend="icu"/> (built before <xref linkend="libxml2"/>) ,
[ceb3dc7]286 <xref linkend="libwebp"/>,
[55a55f1]287 <xref linkend="libxslt"/>, and
[f5932da]288 <xref linkend="opus"/>
[ceb3dc7]289 </para>
290
291 <bridgehead renderas="sect4">Optional</bridgehead>
292 <para role="optional">
293 <xref linkend="libevent"/>,
[ff00f810]294 <xref linkend="mitkrb"/>,
[d885388]295 <xref linkend="pipewire"/>,
[e847737]296 <xref linkend="poppler"/>,
[ceb3dc7]297 <ulink url="https://github.com/open-source-parsers/jsoncpp/releases">jsoncpp</ulink>,
298 <ulink url="https://github.com/cisco/libsrtp/releases">libsrtp</ulink>,
[87fc185]299 <ulink url="https://google.github.io/snappy/">snappy</ulink>
[ceb3dc7]300 </para>
301
302 <para condition="html" role="usernotes">
303 User Notes: <ulink url="&blfs-wiki;/qtwebengine"/>
304 </para>
305 </sect2>
306
307 <sect2 role="installation">
308 <title>Installation of qtwebengine</title>
309
[70e458ba]310<!-- following merely commented instead of deleted, in case we need to
311 drop back when a future version of python3 is released -->
312<!--<note>
[4eb513e]313 <para>
314 Unlike version 5.15.2, the chromium-derived build system now needs
315 <command>python</command> to be available and to be python2. In
316 BLFS-10.1 the creation of the python symlink was removed as a step
317 towards eventually getting rid of python2 (other old packages which
318 need python2 usually work by invoking python2). If you are still
319 using an earlier version of BLFS where
320 <filename>/usr/bin/python</filename> exists, you can skip the
321 commands to create the symlink, and to later remove it.
322 </para>
323 </note>
324
[55a55f1]325 <para>
[4eb513e]326 First, as the <systemitem class="username">root</systemitem>
327 user, create the python symlink:
[55a55f1]328 </para>
329
[70e458ba]330<screen role="root"><userinput>ln -svf /usr/bin/python{2,}</userinput></screen>-->
[72119155]331
[685b8672]332
[9e0ab833]333<!--<para>
[86e62cc]334 Now apply a patch to update from 5.15.6 to the security and other fixes
335 contained in the 5.15.7 source:
[685b8672]336 </para>
337
[9e0ab833]338<screen><userinput remap="pre">patch -Np1 -i ../qtwebengine-&qtwebengine-version;-5.15.7-1.patch</userinput></screen>-->
[72119155]339
[927e12e]340 <para>
[70e458ba]341 Apply a patch to fix several issues that can prevent the build from completing,
342 and to force it to use python3:
[927e12e]343 </para>
344
[366573e]345<screen><userinput remap="pre">patch -Np1 -i ../qtwebengine-&qtwebengine-version;-build_fixes-1.patch</userinput></screen>
[927e12e]346
[aebb5271]347 <para>
348 Apply a patch that resolves problems when building with ffmpeg-5:
349 </para>
350
351<screen><userinput remap="pre">patch -Np1 -i ../qtwebengine-&qtwebengine-version;-ffmpeg5_fixes-1.patch</userinput></screen>
352
[4eb513e]353<!-- start of commands for git versions only -->
[8ed3ef2a]354 <para>
[86e62cc]355 Although the build_fixes patch has ensured that git is not invoked during the build,
[4eb513e]356 the build system has labyrinthine rules of byzantine complexity, and in
357 particular trying to build without two <filename>.git</filename> directories
358 will lead to it eventually falling into unexpected and unbuildable code
359 which references a private header that has not been created. Avoid this
360 by creating the required directories:
[8ed3ef2a]361 </para>
362
[4eb513e]363<screen><userinput>mkdir -pv .git src/3rdparty/chromium/.git</userinput></screen>
364
365 <para>
366 Because this version of qtwebengine is aimed at a later release than the
367 current public releases, change it to build for qt-&qt5-version; using a
368 sed:
369 </para>
370
371<screen><userinput>sed -e '/^MODULE_VERSION/s/5.*/&qt5-version;/' -i .qmake.conf</userinput></screen>
372<!-- end of commands for git versions only -->
373
374 <para>
375 Now, ensure that the local headers are available when not building as
376 part of the complete <xref linkend="qt5"/>:
377 </para>
378
379<screen><userinput>find -type f -name "*.pr[io]" |
380 xargs sed -i -e 's|INCLUDEPATH += |&amp;$$QTWEBENGINE_ROOT/include |'</userinput></screen>
[8ed3ef2a]381
[ae39488]382 <para>
383 Next, allow the pulseaudio library to be linked at build time, instead
384 of run time. This also prevents an issue with newer pulseaudio:
385 </para>
386
387<screen><userinput>sed -e '/link_pulseaudio/s/false/true/' \
388 -i src/3rdparty/chromium/media/media_options.gni</userinput></screen>
389
[e90b81d]390 <para>
391 Finally, fix a change in the build system which allows its developers to
392 pass e.g. -j20 to make (for quick tests of some areas) but breaks the
393 build with LFS's use of the NINJAJOBS environment variable:
394 </para>
395
396<!-- editors: See thread at
397http://lists.linuxfromscratch.org/pipermail/blfs-dev/2019-December/036996.html
398et.seq, particularly 037002.html which shows the commit near the end. -->
399
400<screen><userinput>sed -i 's/NINJAJOBS/NINJA_JOBS/' src/core/gn_run.pro</userinput></screen>
401
[d885388]402<!-- now that we always install this as 5.15.2, this seems to be redundant
[55a55f1]403 <para>
404 If an older version of the package's main library has been installed,
405 when the package is built separately it will link to that in preference
406 to its own not-yet-installed version, and fail because of missing symbols.
407 Prevent that by, as the <systemitem class="username">root</systemitem>
[fa4e429]408 user, moving the symlink out of the way:
[55a55f1]409 </para>
410
[8eb0021]411<screen role="root"><userinput>if [ -e ${QT5DIR}/lib/libQt5WebEngineCore.so ]; then
412 mv -v ${QT5DIR}/lib/libQt5WebEngineCore.so{,.old}
[d885388]413fi</userinput></screen>-->
[55a55f1]414
[70e458ba]415<!--<para>
[3241bb9]416 The last fix is needed to build with gcc-12:
417 </para>
418
419<screen><userinput>sed -e '/#include/i#include &lt;vector&gt;' \
[70e458ba]420 -i src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp</userinput></screen>-->
[3241bb9]421
[d4bafcc7]422 <para>
423 Install <application>qtwebengine</application> by running the following
424 commands:
425 </para>
[1d776f0b]426
[2f3c55c5]427<screen><userinput>mkdir build &amp;&amp;
428cd build &amp;&amp;
[9535df7e]429qmake .. -- -system-ffmpeg -webengine-icu &amp;&amp;
[2f3c55c5]430make</userinput></screen>
[ceb3dc7]431
[640f4c21]432<!--
[ceb3dc7]433 <para>
434 if you wish to build the HTML documentation, issue:
435 </para>
436
437<screen><userinput>make docs</userinput></screen>
[640f4c21]438-->
[ceb3dc7]439 <para>
440 This package does not come with a test suite.
441 </para>
442
443 <para>
444 Now, as the <systemitem class="username">root</systemitem> user:
445 </para>
446
[640f4c21]447<screen role="root"><userinput>make install</userinput></screen>
[4eb513e]448
[e847737]449 <!-- EDITORS NOTE: If you are updating this package, use INSTALL_ROOT=
450 instead of DESTDIR= -->
[640f4c21]451<!--
[ceb3dc7]452 <para>
453 If you built the HTML documentation, install it with:
454 </para>
455
456<screen role="root"><userinput>make install_docs</userinput></screen>
[640f4c21]457-->
[ceb3dc7]458 <para>
459 Remove references to the build directory from installed library
460 dependency (prl) files by running the following
461 commands as the <systemitem class="username">root</systemitem> user:
462 </para>
463
[dff94d4]464<screen role="root"><userinput>find $QT5DIR/ -name \*.prl \
[ceb3dc7]465 -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;</userinput></screen>
[4eb513e]466
[70e458ba]467<!--<para>
[4eb513e]468 Finally, as the <systemitem class="username">root</systemitem>
469 user, remove the python symlink:
470 </para>
471
[70e458ba]472<screen role="root"><userinput>rm -v /usr/bin/python</userinput></screen>-->
[ceb3dc7]473 </sect2>
474
475 <sect2 role="commands">
476 <title>Command Explanations</title>
477
478 <para>
[640f4c21]479 <command>qmake</command>: This will build the included copy of
480 <application>ninja</application> if it is not already installed
[088e7e06]481 and use it to configure the build.
482 </para>
483
[55a55f1]484 <para>
[9535df7e]485 <command>-- -system-ffmpeg -webengine-icu</command>: If any options are
486 passed to qmake they must come after '--' which must follow '..' that points
[55a55f1]487 to the main directory. The options here cause it to use system ffmpeg and
488 system icu. If built as part of full Qt5, the system icu is automatically
489 used (only) by Qt5Core if it is available, but unless this option is used
490 webengine will always use its shipped copy of icu, adding time and space
[9535df7e]491 to the build.
[55a55f1]492 </para>
493
[d885388]494 <para>
495 <option>-webengine-jumbo-build 0</option>: If this is added to the qmake
496 command it will cause the 'Jumbo Build Merge Limit' to be reported as 'no'
497 instead of 8. That turns off the jumbo build. Some distros do that to get
498 a smaller build on some architectures such as MIPS. On x86_64 it might save
499 a little space in the build, but the build time will increase by a very
500 large amount.
501 </para>
502
[ff00f810]503 <para>
504 <option>-webengine-kerberos</option>: Add this if you have installed <xref
505 linkend="mitkrb"/> and wish to connect from a browser using QtWebEngine
506 to a webserver which requires you to connect via kerberos.
507 </para>
508
[c716497]509 <!--
[8558044]510 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
[52249aa]511 href="../../xincludes/SIOCGSTAMP.xml"/>
[c716497]512 -->
[52249aa]513
[088e7e06]514 <para>
515 <option>NINJAJOBS=4 make</option>: If you patched system ninja in LFS to
516 recognize the NINJAJOBS environment variable, this command will run system
[8558044]517 ninja with the specified number of jobs (i.e. 4).
[d885388]518 There are several reasons why you might want to use options like this this:
[4eb513e]519 </para>
[d885388]520
[5c7f2497]521 <itemizedlist>
522 <listitem>
[baac59c]523 <para>
524 Building on a subset of CPUs allows measuring the build time
[d885388]525 for a smaller number of processors, and/or running other
526 CPU-intensive tasks at the same time. For an editor on a machine
527 with a lot of CPUs, trying to measure the build time for a 4-CPU
528 machine, <option>NINJAJOBS=4 make</option> will give a reasonable
[70e458ba]529 approximation (there is a short period where N+2 python and node
[d885388]530 jobs run).
[baac59c]531 </para>
[5c7f2497]532 </listitem>
533 <listitem>
[baac59c]534 <para>
[d885388]535 On a machine with only 4 CPUs online, the default of scheduling
[c7ce2b46]536 N+2 jobs for qtwebengine is slower by between 3% and 7%, probably
[d885388]537 because of the size of the C++ files and their many includes and
538 templates. Therefore, if in doubt set NINJAJOBS to the number of CPUs.
[baac59c]539 </para>
[5c7f2497]540 </listitem>
541 <listitem>
[baac59c]542 <para>
543 Reducing the number of cores being used on long running, CPU
544 intensive packages may alleviate heat problems.
545 </para>
[5c7f2497]546 </listitem>
[00032e41]547 <listitem>
548 <para>
549 Reducing the number of cores will prevent potential out-of-memory
550 problems on systems that do not have enough memory (or swap)
[8558044]551 when all cores are active. A suggested approach is to limit
552 the number of cores to about one core for each 1.5 GB of
[00032e41]553 combined RAM and swap space.
554 </para>
555 </listitem>
[5c7f2497]556 </itemizedlist>
[ceb3dc7]557
558 </sect2>
559
[55a55f1]560 <sect2 role="configuration">
561 <title>Configuring QtWebEngine</title>
562
563 <sect3 id="qtwebengine-config">
564 <title>Configuration Information</title>
565
566 <para>
567 If you are upgrading from an older minor version of this
568 application, for some webpages to load you may need to
569 clear the <emphasis>browser</emphasis> caches, e.g. for
570 <application>falkon</application> they will be found in
571 <filename class="directory">~/.cache/falkon/</filename>.
572 You will need to do this if the browser starts to render
573 the page and then changes to a blank tab with a message
574 that something went wrong, and a button to Retry. Even
575 after removing the old caches, you may need to retry a
576 few times for each affected tab.
577 </para>
578
[4eb513e]579 <para>
580 If a browser using this package fails to run and when run
581 from a term it reports 'Trace/breakpoint trap' that is
582 probably a kernel configuration issue - there is no need
583 to rebuild QtWebEngine, see the next section, recompile
584 the kernel and reboot to the new kernel.
585 </para>
586
[55a55f1]587 </sect3>
588
589 </sect2>
590
[4eb513e]591 <sect2 role="kernel" id="qtwebengine-kernel">
592 <title>Kernel Configuration</title>
593
594 <para>
[866d8e15]595 This package does not require any of the optional kernel namespace items,
596 but if User namespace is enabled <phrase revision="systemd">(as happens
597 in some unit files, for hardening)</phrase> PID namespace must also be
598 enabled. In that case enable the following options in the kernel
599 configuration and recompile the kernel if necessary:
[4eb513e]600 </para>
601
602<!-- Spaces are significant in <screen> sections -->
603<screen><literal>General setup ---&gt;
604 -*- Namespaces support ---&gt;
[866d8e15]605 [ ] User namespace [CONFIG_USER_NS]
606 [*] PID namespace [CONFIG_PID_NS]</literal></screen>
[4eb513e]607
608 <indexterm zone="qtwebengine qtwebengine-kernel">
609 <primary sortas="d-qtwebengine">qtwebengine</primary>
610 </indexterm>
611 </sect2>
[55a55f1]612
[ceb3dc7]613 <sect2 role="content">
614 <title>Contents</title>
615
616 <segmentedlist>
617 <segtitle>Installed Programs</segtitle>
618 <segtitle>Installed Libraries</segtitle>
619 <segtitle>Installed Directories</segtitle>
620
621 <seglistitem>
622 <seg>
[8558044]623 qtwebengine_convert_dict and
[e10e1a8e]624 QtWebEngineProcess (in $QT5DIR/libexec)
[ceb3dc7]625 </seg>
626 <seg>
[21552cf]627 libQt5Pdf.so,
628 libQt5PdfWidgets.so,
[8558044]629 libQt5WebEngineCore.so,
630 libQt5WebEngine.so, and
[640f4c21]631 libQt5WebEngineWidgets.so
[ceb3dc7]632 </seg>
633 <seg>
[21552cf]634 $QT5DIR/include/QtPdf,
635 $QT5DIR/include/QtPdfWidgets,
[e10e1a8e]636 $QT5DIR/include/QtWebEngine,
637 $QT5DIR/include/QtWebEngineCore,
638 $QT5DIR/include/QtWebEngineWidgets,
639 $QT5DIR/qml/QtWebEngine, and
640 $QT5DIR/translations/qtwebengine_locales
[ceb3dc7]641 </seg>
642 </seglistitem>
643 </segmentedlist>
644
645 <variablelist>
646 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
647 <?dbfo list-presentation="list"?>
648 <?dbhtml list-presentation="table"?>
649
650 <varlistentry id="qtwebengine_convert_dict">
651 <term><command>qtwebengine_convert_dict</command></term>
652 <listitem>
653 <para>
654 converts hunspell dictionaries (<literal>.dic</literal>) to chromium
655 format (<literal>.bdic</literal>)
656 </para>
657 <indexterm zone="qtwebengine qtwebengine_convert_dict">
658 <primary sortas="b-qtwebengine_convert_dict">qtwebengine_convert_dict</primary>
659 </indexterm>
660 </listitem>
661 </varlistentry>
662
663 <varlistentry id="QtWebEngineProcess">
664 <term><command>QtWebEngineProcess</command></term>
665 <listitem>
666 <para>
667 is a libexec program which runs a zygote process (one that listens
668 for spawn requests from a master process and will fork itself in
[4c24eb0a]669 response)
[ceb3dc7]670 </para>
671 <indexterm zone="qtwebengine QtWebEngineProcess">
672 <primary sortas="b-QtWebEngineProcess">QtWebEngineProcess</primary>
673 </indexterm>
674 </listitem>
675 </varlistentry>
676
677 <varlistentry id="libQtWebEngine-lib">
678 <term><filename class="libraryfile">libQtWebEngine.so</filename></term>
679 <listitem>
680 <para>
[4c24eb0a]681 provides QML types for rendering web content within a QML application
[ceb3dc7]682 </para>
683 <indexterm zone="qtwebengine libQtWebEngine-lib">
684 <primary sortas="c-libQtWebEngine">libQtWebEngine.so</primary>
685 </indexterm>
686 </listitem>
687 </varlistentry>
688
689 <varlistentry id="libQtWebEngineCore">
690 <term><filename class="libraryfile">libQtWebEngineCore.so</filename></term>
691 <listitem>
692 <para>
[4c24eb0a]693 provides public API shared by both QtWebEngine and QtWebEngineWidgets
[ceb3dc7]694 </para>
695 <indexterm zone="qtwebengine libQtWebEngineCore">
696 <primary sortas="c-libQtWebEngineCore">libQtWebEngineCore.so</primary>
697 </indexterm>
698 </listitem>
699 </varlistentry>
700
701 <varlistentry id="libQtWebEngineWidgets">
702 <term><filename class="libraryfile">libQtWebEngineWidgets.so</filename></term>
703 <listitem>
704 <para>
705 provides a web browser engine as well as C++ classes to render and
[4c24eb0a]706 interact with web content
[ceb3dc7]707 </para>
708 <indexterm zone="qtwebengine libQtWebEngineWidgets">
709 <primary sortas="c-libQtWebEngineWidgets">libQtWebEngineWidgets.so</primary>
710 </indexterm>
711 </listitem>
712 </varlistentry>
713
714 </variablelist>
715 </sect2>
[4c24eb0a]716
[ceb3dc7]717</sect1>
Note: See TracBrowser for help on using the repository browser.