source: x/lib/qtwebengine.xml@ 7acd427

12.1 gimp3 ken/TL2024 ken/tuningfonts lazarus plabs/newcss python3.11 rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18 xry111/spidermonkey128
Last change on this file since 7acd427 was 44b3f440, checked in by Xi Ruoyao <xry111@…>, 11 months ago

treewide: Really remove commented out references to Python 2

It helps using grep for finding packages depending on Python 2.

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