2017-05-20 02:39:12 +08:00
|
|
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
|
|
|
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
|
|
|
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
|
|
|
<!ENTITY % general-entities SYSTEM "../../general.ent">
|
|
|
|
%general-entities;
|
|
|
|
|
2018-12-30 11:21:39 +08:00
|
|
|
<!ENTITY qtwebengine-major "5.12">
|
2017-12-18 00:55:55 +08:00
|
|
|
<!ENTITY qtwebengine-download-http "https://download.qt.io/archive/qt/&qtwebengine-major;/&qtwebengine-version;/submodules/qtwebengine-everywhere-src-&qtwebengine-version;.tar.xz">
|
2017-05-20 02:39:12 +08:00
|
|
|
<!ENTITY qtwebengine-download-ftp " ">
|
2018-12-30 11:21:39 +08:00
|
|
|
<!ENTITY qtwebengine-md5sum "53d74f6ed0c188ee106381d9cba99e94">
|
|
|
|
<!ENTITY qtwebengine-size "241 MB">
|
|
|
|
<!ENTITY qtwebengine-buildsize "3.3 GB (134 MB installed)">
|
|
|
|
<!ENTITY qtwebengine-time "36 SBU (using 4 cores)">
|
2017-05-20 02:39:12 +08:00
|
|
|
]>
|
|
|
|
|
|
|
|
<sect1 id="qtwebengine" xreflabel="qtwebengine-&qtwebengine-version;">
|
|
|
|
<?dbhtml filename="qtwebengine.html"?>
|
|
|
|
|
|
|
|
<sect1info>
|
|
|
|
<othername>$LastChangedBy$</othername>
|
|
|
|
<date>$Date$</date>
|
|
|
|
</sect1info>
|
|
|
|
|
|
|
|
<title>QtWebEngine-&qtwebengine-version;</title>
|
|
|
|
|
|
|
|
<indexterm zone="qtwebengine">
|
|
|
|
<primary sortas="a-qtwebengine">qtwebengine</primary>
|
|
|
|
</indexterm>
|
|
|
|
|
|
|
|
<sect2 role="package">
|
|
|
|
<title>Introduction to QtWebEngine</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
<application>QtWebEngine</application> integrates
|
2018-12-30 11:21:39 +08:00
|
|
|
<application>chromium</application>'s web capabilities into Qt. It
|
2017-10-16 05:22:27 +08:00
|
|
|
ships with its own copy of ninja which it uses for the build if it cannot
|
|
|
|
find a system copy, and various copies of libraries from ffmpeg, icu,
|
|
|
|
libvpx, and zlib (including libminizip) which have been forked by the
|
2017-05-20 02:39:12 +08:00
|
|
|
<application>chromium</application> developers.
|
|
|
|
</para>
|
|
|
|
|
2018-08-27 03:11:33 +08:00
|
|
|
&lfs83_checked;
|
2018-02-16 14:13:40 +08:00
|
|
|
|
2018-12-30 11:21:39 +08:00
|
|
|
<note>
|
|
|
|
<para>
|
|
|
|
By default, ninja will use all online CPUs +2 (if at least 4 exist),
|
|
|
|
even if they are not available to the current task because the build
|
|
|
|
terminal has been restricted with 'taskset'. To work around this, see
|
|
|
|
the Command Explanations below.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Unusually, the shipped GN build system (used to create the Ninja files)
|
|
|
|
requires a static <filename class="libraryfile">libstdc++.a</filename>
|
|
|
|
although the installed libraries correctly use the shared version. If
|
|
|
|
that static library is not present, the build will fail quite quickly.
|
|
|
|
Please note that if you try to build webengine as part of <xref
|
|
|
|
linkend="qt5"/> and the static library is not available, that build will
|
|
|
|
either complete without installing webengine, or else fail during the
|
|
|
|
install (both variants have been observed).
|
|
|
|
</para>
|
|
|
|
</note>
|
2017-05-20 02:39:12 +08:00
|
|
|
|
|
|
|
<bridgehead renderas="sect3">Package Information</bridgehead>
|
|
|
|
<itemizedlist spacing="compact">
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Download (HTTP): <ulink url="&qtwebengine-download-http;"/>
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Download (FTP): <ulink url="&qtwebengine-download-ftp;"/>
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Download MD5 sum: &qtwebengine-md5sum;
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Download size: &qtwebengine-size;
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Estimated disk space required: &qtwebengine-buildsize;
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Estimated build time: &qtwebengine-time;
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
|
2019-01-20 02:13:43 +08:00
|
|
|
<bridgehead renderas="sect3">Additional Downloads</bridgehead>
|
|
|
|
<itemizedlist spacing="compact">
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Required patch (if building on i686):
|
|
|
|
<ulink url="&patch-root;/qtwebengine-&qtwebengine-version;-i686_alignof_fix-1.patch"/>
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
|
2017-05-20 02:39:12 +08:00
|
|
|
<bridgehead renderas="sect3">qtwebengine Dependencies</bridgehead>
|
|
|
|
|
|
|
|
<bridgehead renderas="sect4">Required</bridgehead>
|
|
|
|
<!-- the qmake output tends to be misleading. 'khr' is from Mesa -->
|
|
|
|
<para role="required">
|
|
|
|
<xref linkend="nss"/>,
|
2018-12-30 11:21:39 +08:00
|
|
|
<xref linkend="python2"/>, and
|
2017-05-20 02:39:12 +08:00
|
|
|
<xref linkend='qt5'/>
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<bridgehead renderas="sect4">Recommended</bridgehead>
|
|
|
|
<note>
|
|
|
|
<para>
|
|
|
|
If these packages are not installed, the build process will compile and
|
|
|
|
install its own (perhaps older) version, with the side effect of
|
|
|
|
increasing build and installed disk space and build time.
|
|
|
|
</para>
|
|
|
|
</note>
|
|
|
|
|
|
|
|
<para role="recommended">
|
2018-12-30 11:21:39 +08:00
|
|
|
either <xref linkend="alsa-lib"/> or
|
|
|
|
<xref linkend="pulseaudio"/> (or both),
|
|
|
|
<xref linkend="ffmpeg"/>,
|
|
|
|
<xref linkend="icu"/>,
|
2017-05-20 02:39:12 +08:00
|
|
|
<xref linkend="libwebp"/>,
|
2018-12-30 11:21:39 +08:00
|
|
|
<xref linkend="libxslt"/>, and
|
2017-11-13 16:24:14 +08:00
|
|
|
<xref linkend="opus"/>
|
2017-05-20 02:39:12 +08:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<bridgehead renderas="sect4">Optional</bridgehead>
|
|
|
|
<para role="optional">
|
|
|
|
<xref linkend="libevent"/>,
|
|
|
|
<ulink url="https://github.com/open-source-parsers/jsoncpp/releases">jsoncpp</ulink>,
|
|
|
|
<ulink url="https://github.com/cisco/libsrtp/releases">libsrtp</ulink>,
|
|
|
|
<ulink url="http://google.github.io/snappy/">snappy</ulink>
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para condition="html" role="usernotes">
|
|
|
|
User Notes: <ulink url="&blfs-wiki;/qtwebengine"/>
|
|
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2 role="installation">
|
|
|
|
<title>Installation of qtwebengine</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Install <application>qtwebengine</application> by running the following
|
|
|
|
commands:
|
|
|
|
</para>
|
|
|
|
|
2018-12-30 11:21:39 +08:00
|
|
|
<para>
|
|
|
|
First, ensure that the local headers are available when not building as
|
|
|
|
part of the complete <xref linkend="qt5"/>:
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<screen><userinput>find -type f -name "*.pr[io]" |
|
|
|
|
xargs sed -i -e 's|INCLUDEPATH += |&$$QTWEBENGINE_ROOT/include |'</userinput></screen>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
If an older version of the package's main library has been installed,
|
|
|
|
when the package is built separately it will link to that in preference
|
|
|
|
to its own not-yet-installed version, and fail because of missing symbols.
|
|
|
|
Prevent that by, as the <systemitem class="username">root</systemitem>
|
|
|
|
user, moving the symlink out of the way.:
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<screen role="root"><userinput>mv -v ${QT5DIR}/lib/libQtWebEngineCore.so{,.old}</userinput></screen>
|
|
|
|
|
2019-01-20 02:13:43 +08:00
|
|
|
<para>
|
|
|
|
If you are building on a 32-bit i686 system, GCC changed the alignof
|
|
|
|
operator to optimize the ABI. Unfortunately, this makes the alignof()
|
|
|
|
operator return an incorrect number (4 instead of 8). Apply a patch to
|
|
|
|
fix this:
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<screen><userinput>patch -Np1 -i ../qtwebengine-&qtwebengine-version;-i686_alignof_fix-1.patch</userinput></screen>
|
|
|
|
|
2017-06-01 23:30:51 +08:00
|
|
|
<screen><userinput>mkdir build &&
|
|
|
|
cd build &&
|
2017-05-20 02:39:12 +08:00
|
|
|
|
2019-01-09 02:29:26 +08:00
|
|
|
qmake .. -- -system-ffmpeg -webengine-icu &&
|
2017-06-01 23:30:51 +08:00
|
|
|
make</userinput></screen>
|
|
|
|
<!--
|
2017-05-20 02:39:12 +08:00
|
|
|
<para>
|
|
|
|
if you wish to build the HTML documentation, issue:
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<screen><userinput>make docs</userinput></screen>
|
2017-06-01 23:30:51 +08:00
|
|
|
-->
|
2017-05-20 02:39:12 +08:00
|
|
|
<para>
|
|
|
|
This package does not come with a test suite.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Now, as the <systemitem class="username">root</systemitem> user:
|
|
|
|
</para>
|
|
|
|
|
2017-06-01 23:30:51 +08:00
|
|
|
<screen role="root"><userinput>make install</userinput></screen>
|
|
|
|
<!--
|
2017-05-20 02:39:12 +08:00
|
|
|
<para>
|
|
|
|
If you built the HTML documentation, install it with:
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<screen role="root"><userinput>make install_docs</userinput></screen>
|
2017-06-01 23:30:51 +08:00
|
|
|
-->
|
2017-05-20 02:39:12 +08:00
|
|
|
<para>
|
|
|
|
Remove references to the build directory from installed library
|
|
|
|
dependency (prl) files by running the following
|
|
|
|
commands as the <systemitem class="username">root</systemitem> user:
|
|
|
|
</para>
|
|
|
|
|
2017-10-12 05:58:50 +08:00
|
|
|
<screen role="root"><userinput>find $QT5DIR/ -name \*.prl \
|
2017-05-20 02:39:12 +08:00
|
|
|
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;</userinput></screen>
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
<sect2 role="commands">
|
|
|
|
<title>Command Explanations</title>
|
|
|
|
|
|
|
|
<para>
|
2017-06-01 23:30:51 +08:00
|
|
|
<command>qmake</command>: This will build the included copy of
|
|
|
|
<application>ninja</application> if it is not already installed
|
2018-02-16 14:13:40 +08:00
|
|
|
and use it to configure the build.
|
|
|
|
</para>
|
|
|
|
|
2018-12-30 11:21:39 +08:00
|
|
|
<para>
|
2019-01-09 02:29:26 +08:00
|
|
|
<command>-- -system-ffmpeg -webengine-icu</command>: If any options are
|
|
|
|
passed to qmake ithey must come after '--' which must follow '..' that points
|
2018-12-30 11:21:39 +08:00
|
|
|
to the main directory. The options here cause it to use system ffmpeg and
|
|
|
|
system icu. If built as part of full Qt5, the system icu is automatically
|
|
|
|
used (only) by Qt5Core if it is available, but unless this option is used
|
|
|
|
webengine will always use its shipped copy of icu, adding time and space
|
|
|
|
to the build.
|
|
|
|
</para>
|
|
|
|
|
2018-02-16 14:13:40 +08:00
|
|
|
<para>
|
|
|
|
<option>NINJAJOBS=4 make</option>: If you patched system ninja in LFS to
|
|
|
|
recognize the NINJAJOBS environment variable, this command will run system
|
|
|
|
ninja with the specified number of jobs (i.e. 4). Among the reasons why
|
|
|
|
you might want to do this are: building on a subset of CPUs, either to
|
|
|
|
measure the build time for that number of processors or to run other
|
|
|
|
CPU-intensive tasks on other cores, or to improve the build speed on a
|
|
|
|
less-well endowed 4-core machine. On a machine with a powerful CPU and
|
|
|
|
plenty of RAM, running N+2 jobs (the ninja default for 4+ cores) for the
|
|
|
|
large working sets of the C++ compiles in this package is typically only
|
2018-09-23 04:57:33 +08:00
|
|
|
marginally faster than running N jobs at a time. But for a machine with
|
|
|
|
less memory it can be much slower.
|
2017-05-20 02:39:12 +08:00
|
|
|
</para>
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
|
2018-12-30 11:21:39 +08:00
|
|
|
<sect2 role="configuration">
|
|
|
|
<title>Configuring QtWebEngine</title>
|
|
|
|
|
|
|
|
<sect3 id="qtwebengine-config">
|
|
|
|
<title>Configuration Information</title>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
If you are upgrading from an older minor version of this
|
|
|
|
application, for some webpages to load you may need to
|
|
|
|
clear the <emphasis>browser</emphasis> caches, e.g. for
|
|
|
|
<application>falkon</application> they will be found in
|
|
|
|
<filename class="directory">~/.cache/falkon/</filename>.
|
|
|
|
You will need to do this if the browser starts to render
|
|
|
|
the page and then changes to a blank tab with a message
|
|
|
|
that something went wrong, and a button to Retry. Even
|
|
|
|
after removing the old caches, you may need to retry a
|
|
|
|
few times for each affected tab.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
</sect2>
|
|
|
|
|
|
|
|
|
2017-05-20 02:39:12 +08:00
|
|
|
<sect2 role="content">
|
|
|
|
<title>Contents</title>
|
|
|
|
|
|
|
|
<segmentedlist>
|
|
|
|
<segtitle>Installed Programs</segtitle>
|
|
|
|
<segtitle>Installed Libraries</segtitle>
|
|
|
|
<segtitle>Installed Directories</segtitle>
|
|
|
|
|
|
|
|
<seglistitem>
|
|
|
|
<seg>
|
2017-06-01 23:30:51 +08:00
|
|
|
qtwebengine_convert_dict and
|
|
|
|
QtWebEngineProcess
|
2017-05-20 02:39:12 +08:00
|
|
|
</seg>
|
|
|
|
<seg>
|
2017-06-01 23:30:51 +08:00
|
|
|
libQt5WebEngineCore.so,
|
|
|
|
libQt5WebEngine.so, and
|
|
|
|
libQt5WebEngineWidgets.so
|
2017-05-20 02:39:12 +08:00
|
|
|
</seg>
|
|
|
|
<seg>
|
|
|
|
$QT5PREFIX/doc/qtwebengine,
|
|
|
|
$QT5PREFIX/includeQtWebEngine,
|
2017-06-01 23:30:51 +08:00
|
|
|
$QT5PREFIX/include/QtWebEngineCore, and
|
2017-05-20 02:39:12 +08:00
|
|
|
$QT5PREFIX/include/QtWebEngineWidgets
|
|
|
|
</seg>
|
|
|
|
</seglistitem>
|
|
|
|
</segmentedlist>
|
|
|
|
|
|
|
|
<variablelist>
|
|
|
|
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
|
|
|
<?dbfo list-presentation="list"?>
|
|
|
|
<?dbhtml list-presentation="table"?>
|
|
|
|
|
|
|
|
<varlistentry id="qtwebengine_convert_dict">
|
|
|
|
<term><command>qtwebengine_convert_dict</command></term>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
converts hunspell dictionaries (<literal>.dic</literal>) to chromium
|
|
|
|
format (<literal>.bdic</literal>)
|
|
|
|
</para>
|
|
|
|
<indexterm zone="qtwebengine qtwebengine_convert_dict">
|
|
|
|
<primary sortas="b-qtwebengine_convert_dict">qtwebengine_convert_dict</primary>
|
|
|
|
</indexterm>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry id="QtWebEngineProcess">
|
|
|
|
<term><command>QtWebEngineProcess</command></term>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
is a libexec program which runs a zygote process (one that listens
|
|
|
|
for spawn requests from a master process and will fork itself in
|
|
|
|
response).
|
|
|
|
</para>
|
|
|
|
<indexterm zone="qtwebengine QtWebEngineProcess">
|
|
|
|
<primary sortas="b-QtWebEngineProcess">QtWebEngineProcess</primary>
|
|
|
|
</indexterm>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry id="libQtWebEngine-lib">
|
|
|
|
<term><filename class="libraryfile">libQtWebEngine.so</filename></term>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
provides QML types for rendering web content within a QML application.
|
|
|
|
</para>
|
|
|
|
<indexterm zone="qtwebengine libQtWebEngine-lib">
|
|
|
|
<primary sortas="c-libQtWebEngine">libQtWebEngine.so</primary>
|
|
|
|
</indexterm>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry id="libQtWebEngineCore">
|
|
|
|
<term><filename class="libraryfile">libQtWebEngineCore.so</filename></term>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
provides public API shared by both QtWebEngine and QtWebEngineWidgets.
|
|
|
|
</para>
|
|
|
|
<indexterm zone="qtwebengine libQtWebEngineCore">
|
|
|
|
<primary sortas="c-libQtWebEngineCore">libQtWebEngineCore.so</primary>
|
|
|
|
</indexterm>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry id="libQtWebEngineWidgets">
|
|
|
|
<term><filename class="libraryfile">libQtWebEngineWidgets.so</filename></term>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
provides a web browser engine as well as C++ classes to render and
|
|
|
|
interact with web content.
|
|
|
|
</para>
|
|
|
|
<indexterm zone="qtwebengine libQtWebEngineWidgets">
|
|
|
|
<primary sortas="c-libQtWebEngineWidgets">libQtWebEngineWidgets.so</primary>
|
|
|
|
</indexterm>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
</variablelist>
|
|
|
|
</sect2>
|
|
|
|
</sect1>
|