source: x/lib/qtwebengine.xml@ 2f3c55c5

10.0 10.1 11.0 11.1 11.2 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 upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 2f3c55c5 was 2f3c55c5, checked in by Thomas Trepl <thomas@…>, 4 years ago

Temporary remove -webengine-icu switch due to incompatibility to icu-67.1

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@23042 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 16.2 KB
Line 
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
7 <!ENTITY qtwebengine-major "5.14">
8 <!ENTITY qtwebengine-download-http "https://download.qt.io/archive/qt/&qtwebengine-major;/&qtwebengine-version;/submodules/qtwebengine-everywhere-src-&qtwebengine-version;.tar.xz">
9 <!ENTITY qtwebengine-download-ftp " ">
10 <!ENTITY qtwebengine-md5sum "48f85fa5875bee56931b3be8b64a6712">
11 <!ENTITY qtwebengine-size "232 MB">
12 <!ENTITY qtwebengine-buildsize "3.6 GB (146 MB installed)">
13 <!ENTITY qtwebengine-time "68 SBU (using 4 cores)">
14]>
15<!-- Note: there are some para commented out cause of icu-67.1 issue.
16 They are marked with (ICU) and should removed if a new version
17 of qtwebengine builds against ICU-67.1 (or later) again.
18-->
19
20<sect1 id="qtwebengine" xreflabel="qtwebengine-&qtwebengine-version;">
21 <?dbhtml filename="qtwebengine.html"?>
22
23 <sect1info>
24 <othername>$LastChangedBy$</othername>
25 <date>$Date$</date>
26 </sect1info>
27
28 <title>QtWebEngine-&qtwebengine-version;</title>
29
30 <indexterm zone="qtwebengine">
31 <primary sortas="a-qtwebengine">qtwebengine</primary>
32 </indexterm>
33
34 <sect2 role="package">
35 <title>Introduction to QtWebEngine</title>
36
37 <para>
38 <application>QtWebEngine</application> integrates
39 <application>chromium</application>'s web capabilities into Qt. It
40 ships with its own copy of ninja which it uses for the build if it cannot
41 find a system copy, and various copies of libraries from ffmpeg, icu,
42 libvpx, and zlib (including libminizip) which have been forked by the
43 <application>chromium</application> developers.
44 </para>
45
46 &lfs91_checked;
47
48 <note>
49 <para>
50 By default, ninja will use all online CPUs +2 (if at least 4 exist),
51 even if they are not available to the current task because the build
52 terminal has been restricted with 'taskset'. To work around this, see
53 the Command Explanations below.
54 </para>
55
56 <para>
57 Unusually, the shipped GN build system (used to create the Ninja files)
58 requires a static <filename class="libraryfile">libstdc++.a</filename>
59 although the installed libraries correctly use the shared version. If
60 that static library is not present, the build will fail quite quickly.
61 Please note that if you try to build webengine as part of
62 <application>Qt</application> and the static library is not available,
63 that build will either complete without installing webengine, or else
64 fail during the install (both variants have been observed in 5.12.0).
65 </para>
66 </note>
67
68 <bridgehead renderas="sect3">Package Information</bridgehead>
69 <itemizedlist spacing="compact">
70 <listitem>
71 <para>
72 Download (HTTP): <ulink url="&qtwebengine-download-http;"/>
73 </para>
74 </listitem>
75 <listitem>
76 <para>
77 Download (FTP): <ulink url="&qtwebengine-download-ftp;"/>
78 </para>
79 </listitem>
80 <listitem>
81 <para>
82 Download MD5 sum: &qtwebengine-md5sum;
83 </para>
84 </listitem>
85 <listitem>
86 <para>
87 Download size: &qtwebengine-size;
88 </para>
89 </listitem>
90 <listitem>
91 <para>
92 Estimated disk space required: &qtwebengine-buildsize;
93 </para>
94 </listitem>
95 <listitem>
96 <para>
97 Estimated build time: &qtwebengine-time;
98 </para>
99 </listitem>
100 </itemizedlist>
101<!--
102 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
103 <itemizedlist spacing="compact">
104 <listitem>
105 <para>
106 Required patch:
107 <ulink url="&patch-root;/qtwebengine-&qtwebengine-version;-background_rendering_fix-1.patch"/>
108 </para>
109 </listitem>
110 </itemizedlist>
111-->
112 <bridgehead renderas="sect3">qtwebengine Dependencies</bridgehead>
113
114 <bridgehead renderas="sect4">Required</bridgehead>
115 <!-- the qmake output tends to be misleading. 'khr' is from Mesa -->
116 <para role="required">
117 <xref linkend="nss"/>,
118 <xref linkend="python2"/>, and
119 <xref linkend='qt5'/>
120 </para>
121
122 <bridgehead renderas="sect4">Recommended</bridgehead>
123 <note>
124 <para>
125 If these packages are not installed, the build process will compile and
126 install its own (perhaps older) version, with the side effect of
127 increasing build and installed disk space and build time.
128 </para>
129 </note>
130
131 <para role="recommended">
132 either <xref linkend="alsa-lib"/> or
133 <xref linkend="pulseaudio"/> (or both),
134 <xref linkend="ffmpeg"/>,
135 <xref linkend="Jinja2"/> (Python 2 module),
136<!-- (ICU) <xref linkend="icu"/>, -->
137 <xref linkend="libwebp"/>,
138 <xref linkend="libxslt"/>, and
139 <xref linkend="opus"/>
140 </para>
141
142 <bridgehead renderas="sect4">Optional</bridgehead>
143 <para role="optional">
144 <xref linkend="libevent"/>,
145 <xref linkend="poppler"/>,
146 <ulink url="https://github.com/open-source-parsers/jsoncpp/releases">jsoncpp</ulink>,
147 <ulink url="https://github.com/cisco/libsrtp/releases">libsrtp</ulink>,
148 <ulink url="http://google.github.io/snappy/">snappy</ulink>
149 </para>
150
151 <para condition="html" role="usernotes">
152 User Notes: <ulink url="&blfs-wiki;/qtwebengine"/>
153 </para>
154 </sect2>
155
156 <sect2 role="installation">
157 <title>Installation of qtwebengine</title>
158
159 <para>
160 First, ensure that the local headers are available when not building as
161 part of the complete <xref linkend="qt5"/>:
162 </para>
163
164<screen><userinput>find -type f -name "*.pr[io]" |
165 xargs sed -i -e 's|INCLUDEPATH += |&amp;$$QTWEBENGINE_ROOT/include |'</userinput></screen>
166<!--
167 <para>
168 Next, apply a patch that fixes background rendering issues in Falkon,
169 and crashes on multimedia-heavy sites.
170 </para>
171
172<screen><userinput remap="pre">patch -Np1 -i ../qtwebengine-&qtwebengine-version;-background_rendering_fix-1.patch</userinput></screen>
173-->
174
175 <para>
176 Next, allow the pulseaudio library to be linked at build time, instead
177 of run time. This also prevents an issue with newer pulseaudio:
178 </para>
179
180<screen><userinput>sed -e '/link_pulseaudio/s/false/true/' \
181 -i src/3rdparty/chromium/media/media_options.gni</userinput></screen>
182
183 <para>
184 Finally, fix a change in the build system which allows its developers to
185 pass e.g. -j20 to make (for quick tests of some areas) but breaks the
186 build with LFS's use of the NINJAJOBS environment variable:
187 </para>
188
189<!-- editors: See thread at
190http://lists.linuxfromscratch.org/pipermail/blfs-dev/2019-December/036996.html
191et.seq, particularly 037002.html which shows the commit near the end. -->
192
193<screen><userinput>sed -i 's/NINJAJOBS/NINJA_JOBS/' src/core/gn_run.pro</userinput></screen>
194
195 <para>
196 If an older version of the package's main library has been installed,
197 when the package is built separately it will link to that in preference
198 to its own not-yet-installed version, and fail because of missing symbols.
199 Prevent that by, as the <systemitem class="username">root</systemitem>
200 user, moving the symlink out of the way:
201 </para>
202
203<screen role="root"><userinput>if [ -e ${QT5DIR}/lib/libQt5WebEngineCore.so ]; then
204 mv -v ${QT5DIR}/lib/libQt5WebEngineCore.so{,.old}
205fi</userinput></screen>
206
207 <para>
208 Install <application>qtwebengine</application> by running the following
209 commands:
210 </para>
211
212<!-- (ICU) "Original" instructions
213 * Commented because current versio (5.14.2) of qtwebengine does not well with
214 icu-67.1. It results in a compilation error while using its own icu compiles
215 fine.
216 * Re-Check that when a new version of qtwebengine has been released, there
217 are patches around this topic upstream.
218 * Mind the double dash in the qmake line!
219<screen><userinput>mkdir build &amp;&amp;
220cd build &amp;&amp;
221
222qmake .. - - -system-ffmpeg -webengine-icu &amp;&amp;
223make</userinput></screen>
224-->
225<screen><userinput>mkdir build &amp;&amp;
226cd build &amp;&amp;
227
228qmake .. -- -system-ffmpeg &amp;&amp;
229make</userinput></screen>
230<!--
231 <para>
232 if you wish to build the HTML documentation, issue:
233 </para>
234
235<screen><userinput>make docs</userinput></screen>
236-->
237 <para>
238 This package does not come with a test suite.
239 </para>
240
241 <para>
242 Now, as the <systemitem class="username">root</systemitem> user:
243 </para>
244
245<screen role="root"><userinput>make install</userinput></screen>
246 <!-- EDITORS NOTE: If you are updating this package, use INSTALL_ROOT=
247 instead of DESTDIR= -->
248<!--
249 <para>
250 If you built the HTML documentation, install it with:
251 </para>
252
253<screen role="root"><userinput>make install_docs</userinput></screen>
254-->
255 <para>
256 Remove references to the build directory from installed library
257 dependency (prl) files by running the following
258 commands as the <systemitem class="username">root</systemitem> user:
259 </para>
260
261<screen role="root"><userinput>find $QT5DIR/ -name \*.prl \
262 -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;</userinput></screen>
263 </sect2>
264
265 <sect2 role="commands">
266 <title>Command Explanations</title>
267
268 <para>
269 <command>qmake</command>: This will build the included copy of
270 <application>ninja</application> if it is not already installed
271 and use it to configure the build.
272 </para>
273
274 <para>
275 <!-- (ICU) note: change '- -' back to double-dash when uncommenting again:
276 <command>- - -system-ffmpeg -webengine-icu</command>: If any options are
277 passed to qmake they must come after '- -' which must follow '..' that points
278 to the main directory. The options here cause it to use system ffmpeg and
279 system icu. If built as part of full Qt5, the system icu is automatically
280 used (only) by Qt5Core if it is available, but unless this option is used
281 webengine will always use its shipped copy of icu, adding time and space
282 to the build. -->
283 <command>-- -system-ffmpeg</command>: If any options are
284 passed to qmake they must come after '--' which must follow '..' that points
285 to the main directory. The options here cause it to use system ffmpeg.
286 <note>
287 <para>
288 Version &qtwebengine-version; of qtwebengine fails to compile when
289 ICU-67.1 is installed and option -webengine-icu is used. This will
290 be fixed in next versions of qtwebengine.
291 </para>
292 </note>
293 </para>
294
295 <!--
296 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
297 href="../../xincludes/SIOCGSTAMP.xml"/>
298 -->
299
300 <para>
301 <option>NINJAJOBS=4 make</option>: If you patched system ninja in LFS to
302 recognize the NINJAJOBS environment variable, this command will run system
303 ninja with the specified number of jobs (i.e. 4).
304 There are several reasons why you might want to do this:
305 </para>
306
307 <itemizedlist>
308 <listitem>
309 <para>
310 Building on a subset of CPUs allows measuring the build time
311 for that number of processors or to run other CPU-intensive tasks on
312 other cores.
313 </para>
314 </listitem>
315 <listitem>
316 <para>
317 Improving the build speed on a less-well endowed 4-core machine.
318 On a machine with a powerful CPU and plenty of RAM, running N+2
319 jobs (the ninja default for 4+ cores) for the large working sets
320 of the C++ compiles in this package is typically only marginally
321 faster than running N jobs at a time. But for a machine with less
322 memory it can be much slower.
323 </para>
324 </listitem>
325 <listitem>
326 <para>
327 Reducing the number of cores being used on long running, CPU
328 intensive packages may alleviate heat problems.
329 </para>
330 </listitem>
331 </itemizedlist>
332
333 </sect2>
334
335 <sect2 role="configuration">
336 <title>Configuring QtWebEngine</title>
337
338 <sect3 id="qtwebengine-config">
339 <title>Configuration Information</title>
340
341 <para>
342 If you are upgrading from an older minor version of this
343 application, for some webpages to load you may need to
344 clear the <emphasis>browser</emphasis> caches, e.g. for
345 <application>falkon</application> they will be found in
346 <filename class="directory">~/.cache/falkon/</filename>.
347 You will need to do this if the browser starts to render
348 the page and then changes to a blank tab with a message
349 that something went wrong, and a button to Retry. Even
350 after removing the old caches, you may need to retry a
351 few times for each affected tab.
352 </para>
353
354 </sect3>
355
356 </sect2>
357
358
359 <sect2 role="content">
360 <title>Contents</title>
361
362 <segmentedlist>
363 <segtitle>Installed Programs</segtitle>
364 <segtitle>Installed Libraries</segtitle>
365 <segtitle>Installed Directories</segtitle>
366
367 <seglistitem>
368 <seg>
369 qtwebengine_convert_dict and
370 QtWebEngineProcess (in $QT5DIR/libexec)
371 </seg>
372 <seg>
373 libQt5WebEngineCore.so,
374 libQt5WebEngine.so, and
375 libQt5WebEngineWidgets.so
376 </seg>
377 <seg>
378 $QT5DIR/include/QtWebEngine,
379 $QT5DIR/include/QtWebEngineCore,
380 $QT5DIR/include/QtWebEngineWidgets,
381 $QT5DIR/qml/QtWebEngine, and
382 $QT5DIR/translations/qtwebengine_locales
383 </seg>
384 </seglistitem>
385 </segmentedlist>
386
387 <variablelist>
388 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
389 <?dbfo list-presentation="list"?>
390 <?dbhtml list-presentation="table"?>
391
392 <varlistentry id="qtwebengine_convert_dict">
393 <term><command>qtwebengine_convert_dict</command></term>
394 <listitem>
395 <para>
396 converts hunspell dictionaries (<literal>.dic</literal>) to chromium
397 format (<literal>.bdic</literal>)
398 </para>
399 <indexterm zone="qtwebengine qtwebengine_convert_dict">
400 <primary sortas="b-qtwebengine_convert_dict">qtwebengine_convert_dict</primary>
401 </indexterm>
402 </listitem>
403 </varlistentry>
404
405 <varlistentry id="QtWebEngineProcess">
406 <term><command>QtWebEngineProcess</command></term>
407 <listitem>
408 <para>
409 is a libexec program which runs a zygote process (one that listens
410 for spawn requests from a master process and will fork itself in
411 response).
412 </para>
413 <indexterm zone="qtwebengine QtWebEngineProcess">
414 <primary sortas="b-QtWebEngineProcess">QtWebEngineProcess</primary>
415 </indexterm>
416 </listitem>
417 </varlistentry>
418
419 <varlistentry id="libQtWebEngine-lib">
420 <term><filename class="libraryfile">libQtWebEngine.so</filename></term>
421 <listitem>
422 <para>
423 provides QML types for rendering web content within a QML application.
424 </para>
425 <indexterm zone="qtwebengine libQtWebEngine-lib">
426 <primary sortas="c-libQtWebEngine">libQtWebEngine.so</primary>
427 </indexterm>
428 </listitem>
429 </varlistentry>
430
431 <varlistentry id="libQtWebEngineCore">
432 <term><filename class="libraryfile">libQtWebEngineCore.so</filename></term>
433 <listitem>
434 <para>
435 provides public API shared by both QtWebEngine and QtWebEngineWidgets.
436 </para>
437 <indexterm zone="qtwebengine libQtWebEngineCore">
438 <primary sortas="c-libQtWebEngineCore">libQtWebEngineCore.so</primary>
439 </indexterm>
440 </listitem>
441 </varlistentry>
442
443 <varlistentry id="libQtWebEngineWidgets">
444 <term><filename class="libraryfile">libQtWebEngineWidgets.so</filename></term>
445 <listitem>
446 <para>
447 provides a web browser engine as well as C++ classes to render and
448 interact with web content.
449 </para>
450 <indexterm zone="qtwebengine libQtWebEngineWidgets">
451 <primary sortas="c-libQtWebEngineWidgets">libQtWebEngineWidgets.so</primary>
452 </indexterm>
453 </listitem>
454 </varlistentry>
455
456 </variablelist>
457 </sect2>
458</sect1>
Note: See TracBrowser for help on using the repository browser.