WebKitGTK-2.38.5

Introduction to WebKitGTK

The WebKitGTK package is a port of the portable web rendering engine WebKit to the GTK+ 3 and GTK 4 platforms.

[Note]

Note

Development versions of BLFS may not build or run some packages properly if dependencies have been updated since the most recent stable versions of the book.

Package Information

WebKitGTK Dependencies

Required

Cairo-1.17.6, CMake-3.26.1, gst-plugins-base-1.22.1, gst-plugins-bad-1.22.1, GTK+-3.24.37, ICU-72.1, Little CMS-2.14, libgudev-237, libsecret-0.20.5, libsoup-3.2.2, libtasn1-4.19.0, libwebp-1.3.0, Mesa-23.0.1, OpenJPEG-2.5.0, Ruby-3.2.1, SQLite-3.41.1, Which-2.21, and wpebackend-fdo-1.14.1

Recommended

Optional

bubblewrap-0.8.0, Gi-DocGen-2023.1, GTK-4.10.0, HarfBuzz-7.1.0, Wayland-1.21.0, WOFF2-1.0.2, ccache, Hyphen, libavif, libmanette, and xdg-dbus-proxy

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/webkitgtk

Installation of WebKitGTK

Installation of WebKitGTK

Install WebKitGTK by running the following commands:

mkdir -vp build &&
cd        build &&

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 ..        &&
ninja

This package does not have a working test suite. However, there is a usable basic graphical web browser in the build directory, build/bin/MiniBrowser. If launching it fails, there is a problem with the build.

Now, as the root user:

ninja install

As the -DENABLE_DOCUMENTATION=OFF option is used, the documentation is not rebuilt nor installed now. If you need the documentation, you can either install Gi-DocGen-2023.1 and remove this option from the cmake command, or install the pre-built documentation instead:

install -vdm755 /usr/share/gtk-doc/html/{jsc-glib,webkit2gtk{,-web-extension}}-4.1 &&
install -vm644  ../Documentation/jsc-glib-4.1/*              \
                /usr/share/gtk-doc/html/jsc-glib-4.1         &&
install -vm644  ../Documentation/webkit2gtk-4.1/*            \
                /usr/share/gtk-doc/html/webkit2gtk-4.1       &&
install -vm644  ../Documentation/webkit2gtk-web-extension-4.1/* \
                /usr/share/gtk-doc/html/webkit2gtk-web-extension-4.1

Command Explanations

-DUSE_LIBHYPHEN=OFF: This switch disables the default automatic hyphenation implementation. You need to install Hyphen if you wish to enable it (replacing OFF with ON or just removing the switch).

-DENABLE_DOCUMENTATION=OFF: This switch disables regenerating the documentation. Remove this switch if you have Gi-DocGen-2023.1 installed and wish to regenerate the documentation.

-DENABLE_GAMEPAD=OFF: This switch disables gamepad support. Remove this switch if you have libmanette installed and wish to enable it.

-DENABLE_MINIBROWSER=ON: This switch enables compiling and installing the MiniBrowser.

-DUSE_WPE_RENDERER=ON: This switch uses the WPE renderer, which is recommended by upstream.

-DENABLE_BUBBLEWRAP_SANDBOX=OFF: Remove this switch if the optional packages bubblewrap-0.8.0 and xdg-dbus-proxy are installed.

-DUSE_SYSTEM_MALLOC=ON: This switch enables building against the system installed malloc.

-DENABLE_GEOLOCATION=OFF: Use this switch if you don't want to install GeoClue-2.7.0.

-DUSE_WOFF2=ON: Use this switch if the optional package WOFF2-1.0.2 is installed. This adds additional support for fonts.

Contents

Installed Program: WebKitWebDriver
Installed Libraries: libjavascriptcoregtk-4.1.so and libwebkit2gtk-4.1.so
Installed Directories: /usr/include/webkitgtk-4.1, /usr/lib{,exec}/webkit2gtk-4.1, and /usr/share/gtk-doc/html/{jsc-glib,webkit2gtk{,-web-extension}}-4.1

Short Descriptions

WebKitWebDriver

allows debugging and automation of web pages and browsers

libjavascriptcoregtk-4.1.so

contains core JavaScript API functions used by jsc and libwebkit2gtk-4.1

libwebkit2gtk-4.1.so

contains the WebKit2 API functions