source: x/lib/qtwebengine.xml@ d60cd837

elogind
Last change on this file since d60cd837 was d60cd837, checked in by DJ Lucas <dj@…>, 5 years ago

Merge to HEAD 21080.

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

  • Property mode set to 100644
File size: 13.3 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.12">
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 "516c70f4f5ef8f4d0462425735f4ff47">
11 <!ENTITY qtwebengine-size "238 MB">
12 <!ENTITY qtwebengine-buildsize "3.3 GB (134 MB installed)">
13 <!ENTITY qtwebengine-time "60 SBU (using 4 cores)">
14]>
15
16<sect1 id="qtwebengine" xreflabel="qtwebengine-&qtwebengine-version;">
17 <?dbhtml filename="qtwebengine.html"?>
18
19 <sect1info>
20 <othername>$LastChangedBy$</othername>
21 <date>$Date$</date>
22 </sect1info>
23
24 <title>QtWebEngine-&qtwebengine-version;</title>
25
26 <indexterm zone="qtwebengine">
27 <primary sortas="a-qtwebengine">qtwebengine</primary>
28 </indexterm>
29
30 <sect2 role="package">
31 <title>Introduction to QtWebEngine</title>
32
33 <para>
34 <application>QtWebEngine</application> integrates
35 <application>chromium</application>'s web capabilities into Qt. It
36 ships with its own copy of ninja which it uses for the build if it cannot
37 find a system copy, and various copies of libraries from ffmpeg, icu,
38 libvpx, and zlib (including libminizip) which have been forked by the
39 <application>chromium</application> developers.
40 </para>
41
42 &lfs83_checked;
43
44 <note>
45 <para>
46 By default, ninja will use all online CPUs +2 (if at least 4 exist),
47 even if they are not available to the current task because the build
48 terminal has been restricted with 'taskset'. To work around this, see
49 the Command Explanations below.
50 </para>
51
52 <para>
53 Unusually, the shipped GN build system (used to create the Ninja files)
54 requires a static <filename class="libraryfile">libstdc++.a</filename>
55 although the installed libraries correctly use the shared version. If
56 that static library is not present, the build will fail quite quickly.
57 Please note that if you try to build webengine as part of
58 <application>Qt</application> and the static library is not available,
59 that build will either complete without installing webengine, or else fail
60 during the install (both variants have been observed in 5.12.0).
61 </para>
62 </note>
63
64 <bridgehead renderas="sect3">Package Information</bridgehead>
65 <itemizedlist spacing="compact">
66 <listitem>
67 <para>
68 Download (HTTP): <ulink url="&qtwebengine-download-http;"/>
69 </para>
70 </listitem>
71 <listitem>
72 <para>
73 Download (FTP): <ulink url="&qtwebengine-download-ftp;"/>
74 </para>
75 </listitem>
76 <listitem>
77 <para>
78 Download MD5 sum: &qtwebengine-md5sum;
79 </para>
80 </listitem>
81 <listitem>
82 <para>
83 Download size: &qtwebengine-size;
84 </para>
85 </listitem>
86 <listitem>
87 <para>
88 Estimated disk space required: &qtwebengine-buildsize;
89 </para>
90 </listitem>
91 <listitem>
92 <para>
93 Estimated build time: &qtwebengine-time;
94 </para>
95 </listitem>
96 </itemizedlist>
97
98 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
99 <itemizedlist spacing="compact">
100 <listitem>
101 <para>
102 Required patch (if building on i686):
103 <ulink url="&patch-root;/qtwebengine-&qtwebengine-version;-i686_alignof_fix-1.patch"/>
104 </para>
105 </listitem>
106 </itemizedlist>
107
108 <bridgehead renderas="sect3">qtwebengine Dependencies</bridgehead>
109
110 <bridgehead renderas="sect4">Required</bridgehead>
111 <!-- the qmake output tends to be misleading. 'khr' is from Mesa -->
112 <para role="required">
113 <xref linkend="nss"/>,
114 <xref linkend="python2"/>, and
115 <xref linkend='qt5'/>
116 </para>
117
118 <bridgehead renderas="sect4">Recommended</bridgehead>
119 <note>
120 <para>
121 If these packages are not installed, the build process will compile and
122 install its own (perhaps older) version, with the side effect of
123 increasing build and installed disk space and build time.
124 </para>
125 </note>
126
127 <para role="recommended">
128 either <xref linkend="alsa-lib"/> or
129 <xref linkend="pulseaudio"/> (or both),
130 <xref linkend="ffmpeg"/>,
131 <xref linkend="icu"/>,
132 <xref linkend="libwebp"/>,
133 <xref linkend="libxslt"/>, and
134 <xref linkend="opus"/>
135 </para>
136
137 <bridgehead renderas="sect4">Optional</bridgehead>
138 <para role="optional">
139 <xref linkend="libevent"/>,
140 <ulink url="https://github.com/open-source-parsers/jsoncpp/releases">jsoncpp</ulink>,
141 <ulink url="https://github.com/cisco/libsrtp/releases">libsrtp</ulink>,
142 <ulink url="http://google.github.io/snappy/">snappy</ulink>
143 </para>
144
145 <para condition="html" role="usernotes">
146 User Notes: <ulink url="&blfs-wiki;/qtwebengine"/>
147 </para>
148 </sect2>
149
150 <sect2 role="installation">
151 <title>Installation of qtwebengine</title>
152
153 <para>
154 Install <application>qtwebengine</application> by running the following
155 commands:
156 </para>
157
158 <para>
159 First, ensure that the local headers are available when not building as
160 part of the complete <xref linkend="qt5"/>:
161 </para>
162
163<screen><userinput>find -type f -name "*.pr[io]" |
164 xargs sed -i -e 's|INCLUDEPATH += |&amp;$$QTWEBENGINE_ROOT/include |'</userinput></screen>
165
166 <para>
167 If an older version of the package's main library has been installed,
168 when the package is built separately it will link to that in preference
169 to its own not-yet-installed version, and fail because of missing symbols.
170 Prevent that by, as the <systemitem class="username">root</systemitem>
171 user, moving the symlink out of the way.:
172 </para>
173
174<screen role="root"><userinput>mv -v ${QT5DIR}/lib/libQtWebEngineCore.so{,.old}</userinput></screen>
175
176 <para>
177 If you are building on a 32-bit i686 system, GCC changed the alignof
178 operator to optimize the ABI. Unfortunately, this makes the alignof()
179 operator return an incorrect number (4 instead of 8). Apply a patch to
180 fix this:
181 </para>
182
183<screen><userinput>patch -Np1 -i ../qtwebengine-&qtwebengine-version;-i686_alignof_fix-1.patch</userinput></screen>
184
185<screen><userinput>mkdir build &amp;&amp;
186cd build &amp;&amp;
187
188qmake .. -- -system-ffmpeg -webengine-icu &amp;&amp;
189make</userinput></screen>
190<!--
191 <para>
192 if you wish to build the HTML documentation, issue:
193 </para>
194
195<screen><userinput>make docs</userinput></screen>
196-->
197 <para>
198 This package does not come with a test suite.
199 </para>
200
201 <para>
202 Now, as the <systemitem class="username">root</systemitem> user:
203 </para>
204
205<screen role="root"><userinput>make install</userinput></screen>
206<!--
207 <para>
208 If you built the HTML documentation, install it with:
209 </para>
210
211<screen role="root"><userinput>make install_docs</userinput></screen>
212-->
213 <para>
214 Remove references to the build directory from installed library
215 dependency (prl) files by running the following
216 commands as the <systemitem class="username">root</systemitem> user:
217 </para>
218
219<screen role="root"><userinput>find $QT5DIR/ -name \*.prl \
220 -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;</userinput></screen>
221 </sect2>
222
223 <sect2 role="commands">
224 <title>Command Explanations</title>
225
226 <para>
227 <command>qmake</command>: This will build the included copy of
228 <application>ninja</application> if it is not already installed
229 and use it to configure the build.
230 </para>
231
232 <para>
233 <command>-- -system-ffmpeg -webengine-icu</command>: If any options are
234 passed to qmake ithey must come after '--' which must follow '..' that points
235 to the main directory. The options here cause it to use system ffmpeg and
236 system icu. If built as part of full Qt5, the system icu is automatically
237 used (only) by Qt5Core if it is available, but unless this option is used
238 webengine will always use its shipped copy of icu, adding time and space
239 to the build.
240 </para>
241
242 <para>
243 <option>NINJAJOBS=4 make</option>: If you patched system ninja in LFS to
244 recognize the NINJAJOBS environment variable, this command will run system
245 ninja with the specified number of jobs (i.e. 4). Among the reasons why
246 you might want to do this are: building on a subset of CPUs, either to
247 measure the build time for that number of processors or to run other
248 CPU-intensive tasks on other cores, or to improve the build speed on a
249 less-well endowed 4-core machine. On a machine with a powerful CPU and
250 plenty of RAM, running N+2 jobs (the ninja default for 4+ cores) for the
251 large working sets of the C++ compiles in this package is typically only
252 marginally faster than running N jobs at a time. But for a machine with
253 less memory it can be much slower.
254 </para>
255
256 </sect2>
257
258 <sect2 role="configuration">
259 <title>Configuring QtWebEngine</title>
260
261 <sect3 id="qtwebengine-config">
262 <title>Configuration Information</title>
263
264 <para>
265 If you are upgrading from an older minor version of this
266 application, for some webpages to load you may need to
267 clear the <emphasis>browser</emphasis> caches, e.g. for
268 <application>falkon</application> they will be found in
269 <filename class="directory">~/.cache/falkon/</filename>.
270 You will need to do this if the browser starts to render
271 the page and then changes to a blank tab with a message
272 that something went wrong, and a button to Retry. Even
273 after removing the old caches, you may need to retry a
274 few times for each affected tab.
275 </para>
276
277 </sect3>
278
279 </sect2>
280
281
282 <sect2 role="content">
283 <title>Contents</title>
284
285 <segmentedlist>
286 <segtitle>Installed Programs</segtitle>
287 <segtitle>Installed Libraries</segtitle>
288 <segtitle>Installed Directories</segtitle>
289
290 <seglistitem>
291 <seg>
292 qtwebengine_convert_dict and
293 QtWebEngineProcess
294 </seg>
295 <seg>
296 libQt5WebEngineCore.so,
297 libQt5WebEngine.so, and
298 libQt5WebEngineWidgets.so
299 </seg>
300 <seg>
301 $QT5PREFIX/doc/qtwebengine,
302 $QT5PREFIX/includeQtWebEngine,
303 $QT5PREFIX/include/QtWebEngineCore, and
304 $QT5PREFIX/include/QtWebEngineWidgets
305 </seg>
306 </seglistitem>
307 </segmentedlist>
308
309 <variablelist>
310 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
311 <?dbfo list-presentation="list"?>
312 <?dbhtml list-presentation="table"?>
313
314 <varlistentry id="qtwebengine_convert_dict">
315 <term><command>qtwebengine_convert_dict</command></term>
316 <listitem>
317 <para>
318 converts hunspell dictionaries (<literal>.dic</literal>) to chromium
319 format (<literal>.bdic</literal>)
320 </para>
321 <indexterm zone="qtwebengine qtwebengine_convert_dict">
322 <primary sortas="b-qtwebengine_convert_dict">qtwebengine_convert_dict</primary>
323 </indexterm>
324 </listitem>
325 </varlistentry>
326
327 <varlistentry id="QtWebEngineProcess">
328 <term><command>QtWebEngineProcess</command></term>
329 <listitem>
330 <para>
331 is a libexec program which runs a zygote process (one that listens
332 for spawn requests from a master process and will fork itself in
333 response).
334 </para>
335 <indexterm zone="qtwebengine QtWebEngineProcess">
336 <primary sortas="b-QtWebEngineProcess">QtWebEngineProcess</primary>
337 </indexterm>
338 </listitem>
339 </varlistentry>
340
341 <varlistentry id="libQtWebEngine-lib">
342 <term><filename class="libraryfile">libQtWebEngine.so</filename></term>
343 <listitem>
344 <para>
345 provides QML types for rendering web content within a QML application.
346 </para>
347 <indexterm zone="qtwebengine libQtWebEngine-lib">
348 <primary sortas="c-libQtWebEngine">libQtWebEngine.so</primary>
349 </indexterm>
350 </listitem>
351 </varlistentry>
352
353 <varlistentry id="libQtWebEngineCore">
354 <term><filename class="libraryfile">libQtWebEngineCore.so</filename></term>
355 <listitem>
356 <para>
357 provides public API shared by both QtWebEngine and QtWebEngineWidgets.
358 </para>
359 <indexterm zone="qtwebengine libQtWebEngineCore">
360 <primary sortas="c-libQtWebEngineCore">libQtWebEngineCore.so</primary>
361 </indexterm>
362 </listitem>
363 </varlistentry>
364
365 <varlistentry id="libQtWebEngineWidgets">
366 <term><filename class="libraryfile">libQtWebEngineWidgets.so</filename></term>
367 <listitem>
368 <para>
369 provides a web browser engine as well as C++ classes to render and
370 interact with web content.
371 </para>
372 <indexterm zone="qtwebengine libQtWebEngineWidgets">
373 <primary sortas="c-libQtWebEngineWidgets">libQtWebEngineWidgets.so</primary>
374 </indexterm>
375 </listitem>
376 </varlistentry>
377
378 </variablelist>
379 </sect2>
380</sect1>
Note: See TracBrowser for help on using the repository browser.