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
Development versions of BLFS may not build or run some packages
properly if LFS or dependencies have been updated since the most
recent stable versions of the books.
Package Information
-
Download (HTTP): https://webkitgtk.org/releases/webkitgtk-2.46.4.tar.xz
-
Download MD5 sum: 97f2468a917bfd31c36753430b5a2494
-
Download size: 41 MB
-
Estimated disk space required: 1.4 GB (163 MB installed, add
157 MB for GTK-4)
-
Estimated build time: 32 SBU (for GTK-3, using parallelism=8,
add 32 SBU for GTK-4)
WebKitGTK Dependencies
Required
Cairo-1.18.2, CMake-3.31.1,
gst-plugins-base-1.24.9, gst-plugins-bad-1.24.9, GTK+-3.24.43,
GTK-4.16.7,
ICU-76.1, Little
CMS-2.16, libgudev-238, libsecret-0.21.4, libsoup-3.6.1, libtasn1-4.19.0, libwebp-1.4.0,
Mesa-24.2.7, OpenJPEG-2.5.2, Ruby-3.3.6, SQLite-3.47.1, unifdef-2.12,
and Which-2.21
Recommended
bubblewrap-0.11.0, enchant-2.8.2,
GeoClue-2.7.2, GLib-2.82.2 (with
GObject Introspection), hicolor-icon-theme-0.18, libavif-1.1.1, libjxl-0.11.1,
libseccomp-2.5.5, and xdg-dbus-proxy-0.1.6
Optional
Gi-DocGen-2024.1, harfBuzz-10.1.0, Wayland-1.23.0, WOFF2-1.0.2,
ccache, Hyphen,
libbacktrace,
libmanette,
and sysprof
Installation of WebKitGTK
Installation of WebKitGTK
Important
This package allows building with either GTK-3 or GTK-4, but not
both in the same build. The GTK-4 version is needed for packages
such as Epiphany-47.2. Other packages, such as
Balsa-2.6.4 or Evolution-3.54.2, require the GTK-3
version. Both versions can be installed side by side on the same
system. We give build instructions for both cases below, but the
only difference is the setting of -D USE_GTK4
First, fix a build failure that occurs when using ICU-76 or later:
sed '/U_SHOW_CPLUSPLUS_API/a#define U_SHOW_CPLUSPLUS_HEADER_API 0' \
-i Source/WTF/wtf/Platform.h
If you want to install the GTK+-3 version of WebKitGTK, run the following commands:
mkdir -vp build &&
cd build &&
cmake -D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/usr \
-D CMAKE_SKIP_INSTALL_RPATH=ON \
-D PORT=GTK \
-D LIB_INSTALL_DIR=/usr/lib \
-D USE_LIBBACKTRACE=OFF \
-D USE_LIBHYPHEN=OFF \
-D ENABLE_GAMEPAD=OFF \
-D ENABLE_MINIBROWSER=ON \
-D ENABLE_DOCUMENTATION=OFF \
-D ENABLE_WEBDRIVER=OFF \
-D USE_WOFF2=OFF \
-D USE_GTK4=OFF \
-D ENABLE_JOURNALD_LOG=OFF \
-D ENABLE_BUBBLEWRAP_SANDBOX=ON \
-D USE_SYSPROF_CAPTURE=NO \
-W no-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
If you want to install the GTK4 version of WebKitGTK, run the following commands:
rm -rf * .[^.]* &&
cmake -D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/usr \
-D CMAKE_SKIP_INSTALL_RPATH=ON \
-D PORT=GTK \
-D LIB_INSTALL_DIR=/usr/lib \
-D USE_LIBBACKTRACE=OFF \
-D USE_LIBHYPHEN=OFF \
-D ENABLE_GAMEPAD=OFF \
-D ENABLE_MINIBROWSER=ON \
-D ENABLE_DOCUMENTATION=OFF \
-D USE_WOFF2=OFF \
-D USE_GTK4=ON \
-D ENABLE_JOURNALD_LOG=OFF \
-D ENABLE_BUBBLEWRAP_SANDBOX=ON \
-D USE_SYSPROF_CAPTURE=NO \
-W no-dev -G Ninja .. &&
ninja
Now, as the root
user:
ninja install
As the -D ENABLE_DOCUMENTATION=OFF
option is used, the documentation is not rebuilt nor installed now.
If you need the documentation, you can either install Gi-DocGen-2024.1 and remove this option from
the cmake command, or
install the pre-built documentation (only for the GTK-4 version)
instead:
install -vdm755 /usr/share/gtk-doc/html &&
cp -rv ../Documentation/* /usr/share/gtk-doc/html
Command Explanations
-D
CMAKE_SKIP_INSTALL_RPATH=ON
: This switch makes
cmake remove
hardcoded library search paths (rpath) when installing a binary
executable file or a shared library. This package does not need
rpath once it's installed into the standard location, and rpath may
sometimes cause unwanted effects or even security issues.
-D USE_LIBBACKTRACE=OFF
:
This switch disables the use of libbacktrace for dumping a stack
trace when a crash happens. You need to install libbacktrace
if you wish to enable it (replacing OFF with ON or just removing
the switch).
-D USE_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).
-D
ENABLE_DOCUMENTATION=OFF
: This switch disables
regenerating the documentation. Remove this switch if you have
Gi-DocGen-2024.1 installed and wish to
regenerate the documentation.
-D ENABLE_GAMEPAD=OFF
: This
switch disables gamepad support. Remove this switch if you have
libmanette
installed and wish to enable it.
-D ENABLE_MINIBROWSER=ON
:
This switch enables compiling and installing the MiniBrowser.
-D ENABLE_WEBDRIVER=OFF
:
This switch disables compiling and installing WebKitWebDriver. We use it for
the GTK-3 build because the WebKitWebDriver from the GTK-3
build will be overwritten by the GTK-4 build anyway. Remove this
option if you don't plan to build this package with GTK-4.
-D
ENABLE_BUBBLEWRAP_SANDBOX=ON
: This switch enables the
Bubblewrap sandbox, which helps mitigate the impact of most
security vulnerabilities in this package. Change this switch to OFF
if you do not want to install bubblewrap-0.11.0, libseccomp-2.5.5, or xdg-dbus-proxy-0.1.6, but note that this
may put you at risk.
-D ENABLE_JOURNALD_LOG=OFF
:
This switch disables using the systemd journal for logging errors
and debugging information since it is not available on SysV
systems.
-D USE_SYSPROF_CAPTURE=NO
:
This switch disables a hard dependency on sysprof.
-D USE_SYSTEM_MALLOC=ON
: This switch
enables building against the system installed malloc.
-D ENABLE_GEOLOCATION=OFF
: Use this
switch if you don't want to install GeoClue-2.7.2.
-D USE_AVIF=OFF
: Use this switch if you
don't want to install libavif-1.1.1.
Note that you will not have support for AVIF images if you do this.
-D USE_WOFF2=ON
: Use this switch if the
optional package WOFF2-1.0.2 is installed. This adds
additional support for fonts.
-D USE_JPEGXL=OFF
: Use this switch if
the recommended package libjxl-0.11.1 is
not installed. Note that you will not have support for JPEG XL
images if this option is passed.
Contents
Installed Program:
WebKitWebDriver
Installed Libraries:
libjavascriptcoregtk-4.1.so,
libjavascriptcoregtk-6.0.so, libwebkit2gtk-4.1.so, and
libwebkitgtk-6.0.so
Installed Directories:
/usr/include/webkitgtk-4.1,
/usr/include/webkitgtk-6.0, /usr/lib{,exec}/webkit2gtk-4.1,
/usr/lib{,exec}/webkitgtk-6.0,
/usr/share/gtk-doc/html/{jsc-glib,webkit2gtk{,-web-extension}}-4.1
(optional), and
/usr/share/gtk-doc/html/{jsc-glib,webkit2gtk{,-web-process-extension}}-6.0
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
|
libjavascriptcoregtk-6.0.so
|
contains core JavaScript API functions used by
jsc and
libwebkitgtk-6.0
|
libwebkit2gtk-4.1.so
|
contains the WebKit2 API
functions
|
libwebkitgtk-6.0.so
|
contains the WebKit API
functions for GTK-4 applications
|