glfs/x/lib/webkitgtk.xml
Douglas R. Reno c5408a2d70 Add an entity for the gi-docgen URL and change several packages to use
it.

This should make the different URLs we had previously consistent with
one another, and ease maintenance burden.

This is only temporary though since eventually gi-docgen will become
part of the book, when Pierre's python-modules branch is brought into
trunk.
2022-12-16 13:18:44 -06:00

406 lines
13 KiB
XML

<?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;
<!ENTITY webkitgtk-download-http "https://webkitgtk.org/releases/webkitgtk-&webkitgtk-version;.tar.xz">
<!ENTITY webkitgtk-download-ftp " ">
<!ENTITY webkitgtk-md5sum "c234585a51c015a42c80c705222098c6">
<!ENTITY webkitgtk-size "31 MB">
<!ENTITY webkitgtk-buildsize "1.1 GB (172 MB installed)">
<!ENTITY webkitgtk-time "33 SBU (using parallelism=4)">
]>
<sect1 id="webkitgtk" xreflabel="WebKitGTK-&webkitgtk-version;">
<?dbhtml filename="webkitgtk.html"?>
<title>WebKitGTK-&webkitgtk-version;</title>
<indexterm zone="webkitgtk">
<primary sortas="a-WebKitGTK">WebKitGTK</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to WebKitGTK</title>
<para>
The <application>WebKitGTK</application> package is a port of the
portable web rendering engine <application>WebKit</application> to the
<application>GTK+ 3</application> and <application>GTK 4</application>
platforms.
</para>
&lfs112_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Download (HTTP): <ulink url="&webkitgtk-download-http;"/>
</para>
</listitem>
<listitem>
<para>
Download (FTP): <ulink url="&webkitgtk-download-ftp;"/>
</para>
</listitem>
<listitem>
<para>
Download MD5 sum: &webkitgtk-md5sum;
</para>
</listitem>
<listitem>
<para>
Download size: &webkitgtk-size;
</para>
</listitem>
<listitem>
<para>
Estimated disk space required: &webkitgtk-buildsize;
</para>
</listitem>
<listitem>
<para>
Estimated build time: &webkitgtk-time;
</para>
</listitem>
</itemizedlist>
<!--
<bridgehead renderas="sect3">Additional Downloads</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Required patch:
<ulink url="&patch-root;/webkitgtk-&webkitgtk-version;-upstream_fix-1.patch"/>
</para>
</listitem>
</itemizedlist>
-->
<bridgehead renderas="sect3">WebKitGTK Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required">
<xref linkend="cairo"/>,
<xref linkend="cmake"/>,
<xref linkend="gst10-plugins-base"/>,
<xref linkend="gst10-plugins-bad"/>,
<xref linkend="gtk3"/>,
<xref linkend="icu"/>,
<xref linkend="lcms2"/>,
<xref linkend="libgudev"/>,
<xref linkend="libsecret"/>,
<xref linkend="libsoup3"/>,
<xref linkend="libtasn1"/>,
<xref linkend="libwebp"/>,
<xref linkend="mesa"/>,
<xref linkend="openjpeg2"/>,
<xref linkend="ruby"/>,
<xref linkend="sqlite"/>,
<xref linkend="which"/>, and
<xref linkend="wpebackend-fdo"/>
</para>
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended">
<xref linkend="enchant"/>,
<xref linkend="geoclue2"/>,
<xref linkend="gobject-introspection"/>, and
<xref linkend="hicolor-icon-theme"/>
</para>
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional">
<xref linkend="bubblewrap"/>,
<xref linkend="gtk4"/>,
<xref linkend="harfbuzz"/>,
<xref linkend="wayland"/>,
<xref linkend="woff2"/>,
<ulink url="https://ccache.dev/">ccache</ulink>,
<ulink url="&gi-docgen-url;">gi-docgen</ulink>,
<ulink url="https://sourceforge.net/projects/hunspell/files/Hyphen/">Hyphen</ulink>,
<ulink url="https://github.com/AOMediaCodec/libavif">libavif</ulink>,
<ulink url="https://gnome.pages.gitlab.gnome.org/libmanette/">libmanette</ulink>, and
<ulink url="https://github.com/flatpak/xdg-dbus-proxy">xdg-dbus-proxy</ulink>
</para>
<para condition="html" role="usernotes">
User Notes: <ulink url="&blfs-wiki;/webkitgtk"/>
</para>
</sect2>
<sect2 role="installation">
<title>Installation of WebKitGTK</title>
<bridgehead renderas="sect3">Installation of
<application>WebKitGTK</application></bridgehead>
<!--
<para>
Fix an issue causing a crash viewing some web pages:
</para>
<screen><userinput>patch -Np1 -i ../webkitgtk-&webkitgtk-version;-upstream_fix-1.patch</userinput></screen>
-->
<para>
Install <application>WebKitGTK</application> by running the
following commands:
</para>
<screen revision="systemd"><userinput>mkdir -vp build &amp;&amp;
cd build &amp;&amp;
cmake -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_SKIP_RPATH=ON \
-DPORT=GTK \
-DLIB_INSTALL_DIR=/usr/lib \
-DUSE_LIBHYPHEN=OFF \
-DENABLE_GAMEPAD=OFF \
-DENABLE_MINIBROWSER=ON \
-DENABLE_DOCUMENTATION=OFF \
-DUSE_WOFF2=OFF \
-DUSE_WPE_RENDERER=ON \
-DENABLE_BUBBLEWRAP_SANDBOX=OFF \
-Wno-dev -G Ninja .. &amp;&amp;
ninja</userinput></screen>
<screen revision="sysv"><userinput>mkdir -vp build &amp;&amp;
cd build &amp;&amp;
cmake -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_SKIP_RPATH=ON \
-DPORT=GTK \
-DLIB_INSTALL_DIR=/usr/lib \
-DUSE_LIBHYPHEN=OFF \
-DENABLE_GAMEPAD=OFF \
-DENABLE_MINIBROWSER=ON \
-DENABLE_DOCUMENTATION=OFF \
-DUSE_WOFF2=OFF \
-DUSE_WPE_RENDERER=ON \
-DENABLE_JOURNALD_LOG=OFF \
-DENABLE_BUBBLEWRAP_SANDBOX=OFF \
-Wno-dev -G Ninja .. &amp;&amp;
ninja</userinput></screen>
<para>
This package does not have a working test suite. However, there is a
usable basic graphical web browser in the build directory,
<application>build/bin/MiniBrowser</application>. If launching it fails,
there is a problem with the build.
</para>
<!-- Since we're using Ninja now instead of autotools, this isn't valid anymore
<note><para>
When installing, the Makefile does some additional compiling and linking.
If you do not have Xorg in /usr, the LIBRARY_PATH and PKG_CONFIG_PATH
variables need to be defined for the root user. If using sudo to assume
root, use the -E option to pass your current environment variables for the
install process.
</para></note>
-->
<para>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>ninja install &amp;&amp;
install -vdm755 /usr/share/gtk-doc/html/{jsc-glib,webkit2gtk{,-web-extension}}-4.1 &amp;&amp;
install -vm644 ../Documentation/jsc-glib-4.1/* \
/usr/share/gtk-doc/html/jsc-glib-4.1 &amp;&amp;
install -vm644 ../Documentation/webkit2gtk-4.1/* \
/usr/share/gtk-doc/html/webkit2gtk-4.1 &amp;&amp;
install -vm644 ../Documentation/webkit2gtk-web-extension-4.1/* \
/usr/share/gtk-doc/html/webkit2gtk-web-extension-4.1</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<!-- <para>
<command>sed ... TextCheckerEnchant.cpp</command>: This command
is needed to allow the build to complete with enchant-2.x.
</para> -->
<para>
<parameter>-DUSE_LIBHYPHEN=OFF</parameter>: This switch disables the
default automatic hyphenation implementation. You need to install
<ulink
url="https://sourceforge.net/projects/hunspell/files/Hyphen/">Hyphen</ulink>
if you wish to enable it (replacing OFF with ON or just removing
the switch).
</para>
<para>
<parameter>-DENABLE_DOCUMENTATION=OFF</parameter>: This switch disables
regenerating the documentation. Remove this switch if you have
<ulink url="&gi-docgen-url;">gi-docgen</ulink>
installed and wish to regenerate the documentation.
</para>
<para>
<parameter>-DENABLE_GAMEPAD=OFF</parameter>: This switch disables
gamepad support. Remove this switch if you have
<ulink url="https://gnome.pages.gitlab.gnome.org/libmanette/">libmanette</ulink>
installed and wish to enable it.
</para>
<para>
<parameter>-DENABLE_MINIBROWSER=ON</parameter>: This switch enables
compiling and installing the MiniBrowser.
</para>
<para>
<parameter>-DUSE_WPE_RENDERER=ON</parameter>: This switch uses the WPE
renderer, which is recommended by upstream.
</para>
<para>
<parameter>-DENABLE_BUBBLEWRAP_SANDBOX=OFF</parameter>: Remove this
switch if the optional packages <xref linkend="bubblewrap"/> and
<ulink url="https://github.com/flatpak/xdg-dbus-proxy">xdg-dbus-proxy</ulink>
are installed.
</para>
<para revision="sysv">
<parameter>-DENABLE_JOURNALD_LOG=OFF</parameter>: This switch disables using the
systemd journal for logging errors and debugging information since it
is not available on SysV systems.
</para>
<para>
<option>-DUSE_SYSTEM_MALLOC=ON</option>: This switch enables building
against the system installed <application>malloc</application>.
</para>
<para>
<option>-DENABLE_GEOLOCATION=OFF</option>: Use this switch if you don't
want to install <xref linkend="geoclue2"/>.
</para>
<para>
<option>-DUSE_WOFF2=ON</option>: Use this switch if the optional
package <xref linkend="woff2"/> is installed. This adds additional
support for fonts.
</para>
<!-- Uncomment once GTK4 support works, or when it doesn't require
a development version of libsoup.
<para>
<option>-DUSE_GTK4=ON</option>: Use this switch if <xref linkend="gtk4"/>
is installed and you wish to build GTK4 support.
</para>
-->
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Program</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>
<!-- Moved to /usr/libexec/webkit2gtk-4.0, so shouldn't appear here
jsc,
MiniBrowser, and -->
WebKitWebDriver
</seg>
<seg>
libjavascriptcoregtk-4.1.so and
libwebkit2gtk-4.1.so
</seg>
<seg>
/usr/include/webkitgtk-4.1,
/usr/lib{,exec}/webkit2gtk-4.1, and
/usr/share/gtk-doc/html/{jsc-glib,webkit2gtk{,-web-extension}}-4.1
</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<!--
<varlistentry id="jsc">
<term><command>jsc</command></term>
<listitem>
<para>
is a command-line utility that allows you to run JavaScript programs
outside of the context of a web browser.
</para>
<indexterm zone="webkitgtk jsc">
<primary sortas="b-jsc">jsc</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="MiniBrowser">
<term><command>MiniBrowser</command></term>
<listitem>
<para>
is a very simple graphical browser.
</para>
<indexterm zone="webkitgtk MiniBrowser">
<primary sortas="b-MiniBrowser">MiniBrowser</primary>
</indexterm>
</listitem>
</varlistentry>
-->
<varlistentry id="WebKitWebDriver">
<term><command>WebKitWebDriver</command></term>
<listitem>
<para>
allows debugging and automation of web pages and browsers
</para>
<indexterm zone="webkitgtk WebKitWebDriver">
<primary sortas="b-WebKitWebDriver">WebKitWebDriver</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libjavascriptcoregtk-4.1">
<term>
<filename class="libraryfile">libjavascriptcoregtk-4.1.so</filename>
</term>
<listitem>
<para>
contains core JavaScript API functions used by
<command>jsc</command> and
<filename class="libraryfile">libwebkit2gtk-4.1</filename>
</para>
<indexterm zone="webkitgtk libjavascriptcoregtk-4.1">
<primary sortas="c-libjavascriptcoregtk-4.1">libjavascriptcoregtk-4.1.so</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libwebkit2gtk-4">
<term><filename class="libraryfile">libwebkit2gtk-4.1.so</filename></term>
<listitem>
<para>
contains the <application>WebKit2</application> API functions
</para>
<indexterm zone="webkitgtk libwebkit2gtk-4">
<primary sortas="c-libwebkit2gtk-4">libwebkit2gtk-4.1.so</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>