source: x/lib/webkitgtk.xml@ aeda083

trunk
Last change on this file since aeda083 was d8e7734, checked in by Douglas R. Reno <renodr@…>, 11 days ago

Update to WebKitGTK-2.44.4

  • Property mode set to 100644
File size: 18.1 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
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 webkitgtk-download-http "https://webkitgtk.org/releases/webkitgtk-&webkitgtk-version;.tar.xz">
8 <!ENTITY webkitgtk-download-ftp " ">
9 <!ENTITY webkitgtk-md5sum "fd031b34f22c09f91e97cca3a7dbc426">
10 <!ENTITY webkitgtk-size "34 MB">
11 <!ENTITY webkitgtk-buildsize "1.2 GB (159 MB installed, add 154 MB for GTK-4)">
12 <!ENTITY webkitgtk-time "23 SBU (for GTK-3, using parallelism=8, add 22 SBU for GTK-4)">
13
14 <!ENTITY libbacktrace
15 "<ulink url='https://github.com/ianlancetaylor/libbacktrace'>libbacktrace</ulink>">
16]>
17
18<sect1 id="webkitgtk" xreflabel="WebKitGTK-&webkitgtk-version;">
19 <?dbhtml filename="webkitgtk.html"?>
20
21
22 <title>WebKitGTK-&webkitgtk-version;</title>
23
24 <indexterm zone="webkitgtk">
25 <primary sortas="a-WebKitGTK">WebKitGTK</primary>
26 </indexterm>
27
28 <sect2 role="package">
29 <title>Introduction to WebKitGTK</title>
30
31 <para>
32 The <application>WebKitGTK</application> package is a port of the
33 portable web rendering engine <application>WebKit</application> to the
34 <application>GTK+ 3</application> and <application>GTK 4</application>
35 platforms.
36 </para>
37
38 &lfs122_checked;
39
40 <bridgehead renderas="sect3">Package Information</bridgehead>
41 <itemizedlist spacing="compact">
42 <listitem>
43 <para>
44 Download (HTTP): <ulink url="&webkitgtk-download-http;"/>
45 </para>
46 </listitem>
47 <listitem>
48 <para>
49 Download (FTP): <ulink url="&webkitgtk-download-ftp;"/>
50 </para>
51 </listitem>
52 <listitem>
53 <para>
54 Download MD5 sum: &webkitgtk-md5sum;
55 </para>
56 </listitem>
57 <listitem>
58 <para>
59 Download size: &webkitgtk-size;
60 </para>
61 </listitem>
62 <listitem>
63 <para>
64 Estimated disk space required: &webkitgtk-buildsize;
65 </para>
66 </listitem>
67 <listitem>
68 <para>
69 Estimated build time: &webkitgtk-time;
70 </para>
71 </listitem>
72 </itemizedlist>
73
74<!--
75 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
76 <itemizedlist spacing="compact">
77 <listitem>
78 <para>
79 Required patch:
80 <ulink url="&patch-root;/webkitgtk-&webkitgtk-version;-upstream_fixes-1.patch"/>
81 </para>
82 </listitem>
83 </itemizedlist>
84-->
85
86 <bridgehead renderas="sect3">WebKitGTK Dependencies</bridgehead>
87
88 <bridgehead renderas="sect4">Required</bridgehead>
89 <para role="required">
90 <xref linkend="cairo"/>,
91 <xref linkend="cmake"/>,
92 <xref linkend="gst10-plugins-base"/>,
93 <xref linkend="gst10-plugins-bad"/>,
94 <xref linkend="gtk3"/>,
95 <xref linkend="gtk4"/>,
96 <xref linkend="icu"/>,
97 <xref linkend="lcms2"/>,
98 <xref linkend="libgudev"/>,
99 <xref linkend="libsecret"/>,
100 <xref linkend="libsoup3"/>,
101 <xref linkend="libtasn1"/>,
102 <xref linkend="libwebp"/>,
103 <xref linkend="mesa"/>,
104 <xref linkend="openjpeg2"/>,
105 <xref linkend="ruby"/>,
106 <xref linkend="sqlite"/>,
107 <xref linkend="unifdef"/>, and
108 <xref linkend="which"/>
109 </para>
110
111 <bridgehead renderas="sect4">Recommended</bridgehead>
112 <para role="recommended">
113 <xref linkend="bubblewrap"/>,
114 <xref linkend="enchant"/>,
115 <xref linkend="geoclue2"/>,
116 &gobject-introspection;,
117 <xref linkend="hicolor-icon-theme"/>,
118 <xref linkend="libavif"/>,
119 <xref linkend="libjxl"/>,
120 <xref linkend="libseccomp"/>, and
121 <xref linkend="xdg-dbus-proxy"/>
122 </para>
123
124 <bridgehead renderas="sect4">Optional</bridgehead>
125 <para role="optional">
126 <xref linkend="gi-docgen"/>,
127 <xref linkend="harfbuzz"/>,
128 <xref linkend="wayland"/>,
129 <xref linkend="woff2"/>,
130 <ulink url="https://ccache.dev/">ccache</ulink>,
131 <ulink url="https://sourceforge.net/projects/hunspell/files/Hyphen/">Hyphen</ulink>,
132 &libbacktrace;, and
133 <!--<ulink url="https://github.com/libjxl/libjxl">libjxl</ulink>, and-->
134 <ulink url="https://gnome.pages.gitlab.gnome.org/libmanette/">libmanette</ulink>
135 </para>
136
137 </sect2>
138
139 <sect2 role="installation">
140 <title>Installation of WebKitGTK</title>
141
142 <bridgehead renderas="sect3">Installation of
143 <application>WebKitGTK</application></bridgehead>
144
145 <important>
146 <para>
147 This package allows building with either GTK-3 or GTK-4, but not both
148 in the same build. The GTK-4 version is needed for packages such as
149 <xref linkend="epiphany"/>. Other packages, such as
150 <xref linkend="balsa"/> or <xref linkend="evolution"/>, require the
151 GTK-3 version. Both versions can be installed side by side on the
152 same system. We give build instructions for both cases below, but
153 the only difference is the setting of <command>-D USE_GTK4</command>
154 </para>
155 </important>
156
157<!--
158 <para>
159 First, fix a regression that occurs with some websites that use
160 WebAssembly: <! - - Ticket #20235 - ->
161 </para>
162
163<screen><userinput remap="pre">sed '/returnLocation.isStackArgument/,/returnLocation = canonicalLocation/d'\
164 -i Source/JavaScriptCore/wasm/WasmBBQJIT.cpp</userinput></screen>
165-->
166
167 <para>
168 If you want to install the GTK+-3 version of
169 <application>WebKitGTK</application>, run the following commands:
170 </para>
171
172<screen revision="systemd"><userinput>mkdir -vp build &amp;&amp;
173cd build &amp;&amp;
174
175cmake -D CMAKE_BUILD_TYPE=Release \
176 -D CMAKE_INSTALL_PREFIX=/usr \
177 -D CMAKE_SKIP_INSTALL_RPATH=ON \
178 -D PORT=GTK \
179 -D LIB_INSTALL_DIR=/usr/lib \
180 -D USE_LIBBACKTRACE=OFF \
181 -D USE_LIBHYPHEN=OFF \
182 -D ENABLE_GAMEPAD=OFF \
183 -D ENABLE_MINIBROWSER=ON \
184 -D ENABLE_DOCUMENTATION=OFF \
185 -D ENABLE_WEBDRIVER=OFF \
186 -D USE_WOFF2=OFF \
187 -D USE_GTK4=OFF \
188 -D ENABLE_BUBBLEWRAP_SANDBOX=ON \
189 -W no-dev -G Ninja .. &amp;&amp;
190ninja</userinput></screen>
191
192<screen revision="sysv"><userinput>mkdir -vp build &amp;&amp;
193cd build &amp;&amp;
194
195cmake -D CMAKE_BUILD_TYPE=Release \
196 -D CMAKE_INSTALL_PREFIX=/usr \
197 -D CMAKE_SKIP_INSTALL_RPATH=ON \
198 -D PORT=GTK \
199 -D LIB_INSTALL_DIR=/usr/lib \
200 -D USE_LIBBACKTRACE=OFF \
201 -D USE_LIBHYPHEN=OFF \
202 -D ENABLE_GAMEPAD=OFF \
203 -D ENABLE_MINIBROWSER=ON \
204 -D ENABLE_DOCUMENTATION=OFF \
205 -D ENABLE_WEBDRIVER=OFF \
206 -D USE_WOFF2=OFF \
207 -D USE_GTK4=OFF \
208 -D ENABLE_JOURNALD_LOG=OFF \
209 -D ENABLE_BUBBLEWRAP_SANDBOX=ON \
210 -W no-dev -G Ninja .. &amp;&amp;
211ninja</userinput></screen>
212
213 <para>
214 This package does not have a working test suite. However, there is a
215 usable basic graphical web browser in the build directory,
216 <application>build/bin/MiniBrowser</application>. If launching it fails,
217 there is a problem with the build.
218 </para>
219
220 <para>
221 Now, as the <systemitem class="username">root</systemitem> user:
222 </para>
223
224<screen role="root"><userinput>ninja install</userinput></screen>
225
226 <para>
227 If you want to install the GTK4 version of
228 <application>WebKitGTK</application>, run the following commands:
229 </para>
230
231<screen revision="systemd"><userinput>rm -rf * .[^.]* &amp;&amp;
232
233cmake -D CMAKE_BUILD_TYPE=Release \
234 -D CMAKE_INSTALL_PREFIX=/usr \
235 -D CMAKE_SKIP_INSTALL_RPATH=ON \
236 -D PORT=GTK \
237 -D LIB_INSTALL_DIR=/usr/lib \
238 -D USE_LIBBACKTRACE=OFF \
239 -D USE_LIBHYPHEN=OFF \
240 -D ENABLE_GAMEPAD=OFF \
241 -D ENABLE_MINIBROWSER=ON \
242 -D ENABLE_DOCUMENTATION=OFF \
243 -D USE_WOFF2=OFF \
244 -D USE_GTK4=ON \
245 -D ENABLE_BUBBLEWRAP_SANDBOX=ON \
246 -W no-dev -G Ninja .. &amp;&amp;
247ninja</userinput></screen>
248
249<screen revision="sysv"><userinput>rm -rf * .[^.]* &amp;&amp;
250
251cmake -D CMAKE_BUILD_TYPE=Release \
252 -D CMAKE_INSTALL_PREFIX=/usr \
253 -D CMAKE_SKIP_INSTALL_RPATH=ON \
254 -D PORT=GTK \
255 -D LIB_INSTALL_DIR=/usr/lib \
256 -D USE_LIBBACKTRACE=OFF \
257 -D USE_LIBHYPHEN=OFF \
258 -D ENABLE_GAMEPAD=OFF \
259 -D ENABLE_MINIBROWSER=ON \
260 -D ENABLE_DOCUMENTATION=OFF \
261 -D USE_WOFF2=OFF \
262 -D USE_GTK4=ON \
263 -D ENABLE_JOURNALD_LOG=OFF \
264 -D ENABLE_BUBBLEWRAP_SANDBOX=ON \
265 -W no-dev -G Ninja .. &amp;&amp;
266ninja</userinput></screen>
267
268 <para>
269 Now, as the <systemitem class="username">root</systemitem> user:
270 </para>
271
272<screen role="root"><userinput>ninja install</userinput></screen>
273
274 <para>
275 As the <option>-D ENABLE_DOCUMENTATION=OFF</option> option is used,
276 the documentation is not rebuilt nor installed now. If you need the
277 documentation, you can either install <xref linkend='gi-docgen'/>
278 and remove this option from the <command>cmake</command> command,
279 or install the pre-built documentation (only for the GTK-4 version)
280 instead:
281 </para>
282
283<screen role='root'><userinput>install -vdm755 /usr/share/gtk-doc/html &amp;&amp;
284cp -rv ../Documentation/* /usr/share/gtk-doc/html</userinput></screen>
285
286 </sect2>
287
288 <sect2 role="commands">
289 <title>Command Explanations</title>
290
291<!-- <para>
292 <command>sed ... TextCheckerEnchant.cpp</command>: This command
293 is needed to allow the build to complete with enchant-2.x.
294 </para> -->
295
296 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
297 href="../../xincludes/cmake-skip-install-rpath.xml"/>
298
299 <para>
300 <parameter>-D USE_LIBBACKTRACE=OFF</parameter>: This switch disables
301 the use of libbacktrace for dumping a stack trace when a crash
302 happens. You need to install &libbacktrace; if you wish to enable it
303 (replacing OFF with ON or just removing the switch).
304 </para>
305
306 <para>
307 <parameter>-D USE_LIBHYPHEN=OFF</parameter>: This switch disables the
308 default automatic hyphenation implementation. You need to install
309 <ulink
310 url="https://sourceforge.net/projects/hunspell/files/Hyphen/">Hyphen</ulink>
311 if you wish to enable it (replacing OFF with ON or just removing
312 the switch).
313 </para>
314
315 <para>
316 <parameter>-D ENABLE_DOCUMENTATION=OFF</parameter>: This switch disables
317 regenerating the documentation. Remove this switch if you have
318 <xref linkend="gi-docgen"/>
319 installed and wish to regenerate the documentation.
320 </para>
321
322 <para>
323 <parameter>-D ENABLE_GAMEPAD=OFF</parameter>: This switch disables
324 gamepad support. Remove this switch if you have
325 <ulink url="https://gnome.pages.gitlab.gnome.org/libmanette/">libmanette</ulink>
326 installed and wish to enable it.
327 </para>
328
329 <para>
330 <parameter>-D ENABLE_MINIBROWSER=ON</parameter>: This switch enables
331 compiling and installing the MiniBrowser.
332 </para>
333
334 <para>
335 <parameter>-D ENABLE_WEBDRIVER=OFF</parameter>: This switch disables
336 compiling and installing <command>WebKitWebDriver</command>. We use
337 it for the GTK-3 build because the <command>WebKitWebDriver</command>
338 from the GTK-3 build will be overwritten by the GTK-4 build anyway.
339 Remove this option if you don't plan to build this package with
340 GTK-4.
341 </para>
342
343<!--
344 <para>
345 <parameter>-D USE_JPEGXL=OFF</parameter>: This switch turns off support
346 for JPEG-XL images. Remove it if you have the optional package
347 <ulink url="https://github.com/libjxl/libjxl">libjxl</ulink> installed.
348 </para>
349-->
350 <para>
351 <parameter>-D ENABLE_BUBBLEWRAP_SANDBOX=ON</parameter>: This switch
352 enables the Bubblewrap sandbox, which helps mitigate the impact of most
353 security vulnerabilities in this package. Change this switch to OFF if
354 you do not want to install <xref linkend="bubblewrap" role="nodep"/>,
355 <xref linkend='libseccomp' role="nodep"/>, or
356 <xref linkend="xdg-dbus-proxy" role="nodep"/>, but note that this may
357 put you at risk.
358 <!-- Note: This works well on both i686 and x86_64. -renodr -->
359 </para>
360
361 <para revision="sysv">
362 <parameter>-D ENABLE_JOURNALD_LOG=OFF</parameter>: This switch disables using the
363 systemd journal for logging errors and debugging information since it
364 is not available on SysV systems.
365 </para>
366
367 <para>
368 <option>-D USE_SYSTEM_MALLOC=ON</option>: This switch enables building
369 against the system installed <application>malloc</application>.
370 </para>
371
372 <para>
373 <option>-D ENABLE_GEOLOCATION=OFF</option>: Use this switch if you don't
374 want to install <xref linkend="geoclue2"/>.
375 </para>
376
377 <para>
378 <option>-D USE_AVIF=OFF</option>: Use this switch if you don't want to
379 install <xref linkend="libavif"/>. Note that you will not have support
380 for AVIF images if you do this.
381 </para>
382
383 <para>
384 <option>-D USE_WOFF2=ON</option>: Use this switch if the optional
385 package <xref linkend="woff2"/> is installed. This adds additional
386 support for fonts.
387 </para>
388
389 <para>
390 <option>-D USE_JPEGXL=OFF</option>: Use this switch if the recommended
391 package <xref linkend="libjxl"/> is not installed. Note that you will not
392 have support for JPEG XL images if this option is passed.
393 </para>
394
395 </sect2>
396
397 <sect2 role="content">
398 <title>Contents</title>
399
400 <segmentedlist>
401 <segtitle>Installed Program</segtitle>
402 <segtitle>Installed Libraries</segtitle>
403 <segtitle>Installed Directories</segtitle>
404
405 <seglistitem>
406 <seg>
407<!-- Moved to /usr/libexec/webkit2gtk-4.0, so shouldn't appear here
408 jsc,
409 MiniBrowser, and -->
410 WebKitWebDriver
411 </seg>
412 <seg>
413 libjavascriptcoregtk-4.1.so,
414 libjavascriptcoregtk-6.0.so,
415 libwebkit2gtk-4.1.so, and
416 libwebkitgtk-6.0.so
417 </seg>
418 <seg>
419 /usr/include/webkitgtk-4.1,
420 /usr/include/webkitgtk-6.0,
421 /usr/lib{,exec}/webkit2gtk-4.1,
422 /usr/lib{,exec}/webkitgtk-6.0,
423 /usr/share/gtk-doc/html/{jsc-glib,webkit2gtk{,-web-extension}}-4.1
424 (optional), and
425 /usr/share/gtk-doc/html/{jsc-glib,webkit2gtk{,-web-process-extension}}-6.0
426 </seg>
427 </seglistitem>
428 </segmentedlist>
429
430 <variablelist>
431 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
432 <?dbfo list-presentation="list"?>
433 <?dbhtml list-presentation="table"?>
434
435<!--
436 <varlistentry id="jsc">
437 <term><command>jsc</command></term>
438 <listitem>
439 <para>
440 is a command-line utility that allows you to run JavaScript programs
441 outside of the context of a web browser.
442 </para>
443 <indexterm zone="webkitgtk jsc">
444 <primary sortas="b-jsc">jsc</primary>
445 </indexterm>
446 </listitem>
447 </varlistentry>
448
449 <varlistentry id="MiniBrowser">
450 <term><command>MiniBrowser</command></term>
451 <listitem>
452 <para>
453 is a very simple graphical browser.
454 </para>
455 <indexterm zone="webkitgtk MiniBrowser">
456 <primary sortas="b-MiniBrowser">MiniBrowser</primary>
457 </indexterm>
458 </listitem>
459 </varlistentry>
460-->
461 <varlistentry id="WebKitWebDriver">
462 <term><command>WebKitWebDriver</command></term>
463 <listitem>
464 <para>
465 allows debugging and automation of web pages and browsers
466 </para>
467 <indexterm zone="webkitgtk WebKitWebDriver">
468 <primary sortas="b-WebKitWebDriver">WebKitWebDriver</primary>
469 </indexterm>
470 </listitem>
471 </varlistentry>
472
473 <varlistentry id="libjavascriptcoregtk-4.1">
474 <term>
475 <filename class="libraryfile">libjavascriptcoregtk-4.1.so</filename>
476 </term>
477 <listitem>
478 <para>
479 contains core JavaScript API functions used by
480 <command>jsc</command> and
481 <filename class="libraryfile">libwebkit2gtk-4.1</filename>
482 </para>
483 <indexterm zone="webkitgtk libjavascriptcoregtk-4.1">
484 <primary sortas="c-libjavascriptcoregtk-4.1">libjavascriptcoregtk-4.1.so</primary>
485 </indexterm>
486 </listitem>
487 </varlistentry>
488
489 <varlistentry id="libjavascriptcoregtk-6.0">
490 <term><filename class="libraryfile">libjavascriptcoregtk-6.0.so</filename></term>
491 <listitem>
492 <para>
493 contains core JavaScript API functions used by
494 <command>jsc</command> and
495 <filename class="libraryfile">libwebkitgtk-6.0</filename>
496 </para>
497 <indexterm zone="webkitgtk libjavascriptcoregtk-6.0">
498 <primary sortas="c-libjavascriptcoregtk-6.0">libjavascriptcoregtk-6.0.so</primary>
499 </indexterm>
500 </listitem>
501 </varlistentry>
502
503 <varlistentry id="libwebkit2gtk-4">
504 <term><filename class="libraryfile">libwebkit2gtk-4.1.so</filename></term>
505 <listitem>
506 <para>
507 contains the <application>WebKit2</application> API functions
508 </para>
509 <indexterm zone="webkitgtk libwebkit2gtk-4">
510 <primary sortas="c-libwebkit2gtk-4">libwebkit2gtk-4.1.so</primary>
511 </indexterm>
512 </listitem>
513 </varlistentry>
514
515 <varlistentry id="libwebkitgtk-6">
516 <term><filename class="libraryfile">libwebkitgtk-6.0.so</filename></term>
517 <listitem>
518 <para>
519 contains the <application>WebKit</application> API functions for
520 GTK-4 applications
521 </para>
522 <indexterm zone="webkitgtk libwebkitgtk-6">
523 <primary sortas="c-libwebkitgtk-6">libwebkitgtk-6.0.so</primary>
524 </indexterm>
525 </listitem>
526 </varlistentry>
527
528 </variablelist>
529
530 </sect2>
531
532</sect1>
Note: See TracBrowser for help on using the repository browser.