source: x/lib/webkitgtk.xml@ ca1dfde

trunk
Last change on this file since ca1dfde was ca1dfde, checked in by Douglas R. Reno <renodr@…>, 14 hours ago

Update to WebKitGTK-2.46.1 (Security Update)

  • Property mode set to 100644
File size: 18.5 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 "126f51432eb59d6c307c70858f5459c9">
10 <!ENTITY webkitgtk-size "41 MB">
11 <!ENTITY webkitgtk-buildsize "1.4 GB (163 MB installed, add 157 MB for GTK-4)">
12 <!ENTITY webkitgtk-time "32 SBU (for GTK-3, using parallelism=8, add 32 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;,
133 <ulink url="https://gnome.pages.gitlab.gnome.org/libmanette/">libmanette</ulink>, and
134 <ulink url="&sysprof-url;">sysprof</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 -D USE_SYSTEM_SYSPROF_CAPTURE=NO \
190 -W no-dev -G Ninja .. &amp;&amp;
191ninja</userinput></screen>
192
193<screen revision="sysv"><userinput>mkdir -vp build &amp;&amp;
194cd build &amp;&amp;
195
196cmake -D CMAKE_BUILD_TYPE=Release \
197 -D CMAKE_INSTALL_PREFIX=/usr \
198 -D CMAKE_SKIP_INSTALL_RPATH=ON \
199 -D PORT=GTK \
200 -D LIB_INSTALL_DIR=/usr/lib \
201 -D USE_LIBBACKTRACE=OFF \
202 -D USE_LIBHYPHEN=OFF \
203 -D ENABLE_GAMEPAD=OFF \
204 -D ENABLE_MINIBROWSER=ON \
205 -D ENABLE_DOCUMENTATION=OFF \
206 -D ENABLE_WEBDRIVER=OFF \
207 -D USE_WOFF2=OFF \
208 -D USE_GTK4=OFF \
209 -D ENABLE_JOURNALD_LOG=OFF \
210 -D ENABLE_BUBBLEWRAP_SANDBOX=ON \
211 -D USE_SYSTEM_SYSPROF_CAPTURE=NO \
212 -W no-dev -G Ninja .. &amp;&amp;
213ninja</userinput></screen>
214
215 <para>
216 This package does not have a working test suite. However, there is a
217 usable basic graphical web browser in the build directory,
218 <application>build/bin/MiniBrowser</application>. If launching it fails,
219 there is a problem with the build.
220 </para>
221
222 <para>
223 Now, as the <systemitem class="username">root</systemitem> user:
224 </para>
225
226<screen role="root"><userinput>ninja install</userinput></screen>
227
228 <para>
229 If you want to install the GTK4 version of
230 <application>WebKitGTK</application>, run the following commands:
231 </para>
232
233<screen revision="systemd"><userinput>rm -rf * .[^.]* &amp;&amp;
234
235cmake -D CMAKE_BUILD_TYPE=Release \
236 -D CMAKE_INSTALL_PREFIX=/usr \
237 -D CMAKE_SKIP_INSTALL_RPATH=ON \
238 -D PORT=GTK \
239 -D LIB_INSTALL_DIR=/usr/lib \
240 -D USE_LIBBACKTRACE=OFF \
241 -D USE_LIBHYPHEN=OFF \
242 -D ENABLE_GAMEPAD=OFF \
243 -D ENABLE_MINIBROWSER=ON \
244 -D ENABLE_DOCUMENTATION=OFF \
245 -D USE_WOFF2=OFF \
246 -D USE_GTK4=ON \
247 -D ENABLE_BUBBLEWRAP_SANDBOX=ON \
248 -D ENABLE_SYSTEM_SYSPROF_CAPTURE=NO \
249 -W no-dev -G Ninja .. &amp;&amp;
250ninja</userinput></screen>
251
252<screen revision="sysv"><userinput>rm -rf * .[^.]* &amp;&amp;
253
254cmake -D CMAKE_BUILD_TYPE=Release \
255 -D CMAKE_INSTALL_PREFIX=/usr \
256 -D CMAKE_SKIP_INSTALL_RPATH=ON \
257 -D PORT=GTK \
258 -D LIB_INSTALL_DIR=/usr/lib \
259 -D USE_LIBBACKTRACE=OFF \
260 -D USE_LIBHYPHEN=OFF \
261 -D ENABLE_GAMEPAD=OFF \
262 -D ENABLE_MINIBROWSER=ON \
263 -D ENABLE_DOCUMENTATION=OFF \
264 -D USE_WOFF2=OFF \
265 -D USE_GTK4=ON \
266 -D ENABLE_JOURNALD_LOG=OFF \
267 -D ENABLE_BUBBLEWRAP_SANDBOX=ON \
268 -D USE_SYSTEM_SYSPROF_CAPTURE=NO \
269 -W no-dev -G Ninja .. &amp;&amp;
270ninja</userinput></screen>
271
272 <para>
273 Now, as the <systemitem class="username">root</systemitem> user:
274 </para>
275
276<screen role="root"><userinput>ninja install</userinput></screen>
277
278 <para>
279 As the <option>-D ENABLE_DOCUMENTATION=OFF</option> option is used,
280 the documentation is not rebuilt nor installed now. If you need the
281 documentation, you can either install <xref linkend='gi-docgen'/>
282 and remove this option from the <command>cmake</command> command,
283 or install the pre-built documentation (only for the GTK-4 version)
284 instead:
285 </para>
286
287<screen role='root'><userinput>install -vdm755 /usr/share/gtk-doc/html &amp;&amp;
288cp -rv ../Documentation/* /usr/share/gtk-doc/html</userinput></screen>
289
290 </sect2>
291
292 <sect2 role="commands">
293 <title>Command Explanations</title>
294
295<!-- <para>
296 <command>sed ... TextCheckerEnchant.cpp</command>: This command
297 is needed to allow the build to complete with enchant-2.x.
298 </para> -->
299
300 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
301 href="../../xincludes/cmake-skip-install-rpath.xml"/>
302
303 <para>
304 <parameter>-D USE_LIBBACKTRACE=OFF</parameter>: This switch disables
305 the use of libbacktrace for dumping a stack trace when a crash
306 happens. You need to install &libbacktrace; if you wish to enable it
307 (replacing OFF with ON or just removing the switch).
308 </para>
309
310 <para>
311 <parameter>-D USE_LIBHYPHEN=OFF</parameter>: This switch disables the
312 default automatic hyphenation implementation. You need to install
313 <ulink
314 url="https://sourceforge.net/projects/hunspell/files/Hyphen/">Hyphen</ulink>
315 if you wish to enable it (replacing OFF with ON or just removing
316 the switch).
317 </para>
318
319 <para>
320 <parameter>-D ENABLE_DOCUMENTATION=OFF</parameter>: This switch disables
321 regenerating the documentation. Remove this switch if you have
322 <xref linkend="gi-docgen"/>
323 installed and wish to regenerate the documentation.
324 </para>
325
326 <para>
327 <parameter>-D ENABLE_GAMEPAD=OFF</parameter>: This switch disables
328 gamepad support. Remove this switch if you have
329 <ulink url="https://gnome.pages.gitlab.gnome.org/libmanette/">libmanette</ulink>
330 installed and wish to enable it.
331 </para>
332
333 <para>
334 <parameter>-D ENABLE_MINIBROWSER=ON</parameter>: This switch enables
335 compiling and installing the MiniBrowser.
336 </para>
337
338 <para>
339 <parameter>-D ENABLE_WEBDRIVER=OFF</parameter>: This switch disables
340 compiling and installing <command>WebKitWebDriver</command>. We use
341 it for the GTK-3 build because the <command>WebKitWebDriver</command>
342 from the GTK-3 build will be overwritten by the GTK-4 build anyway.
343 Remove this option if you don't plan to build this package with
344 GTK-4.
345 </para>
346
347<!--
348 <para>
349 <parameter>-D USE_JPEGXL=OFF</parameter>: This switch turns off support
350 for JPEG-XL images. Remove it if you have the optional package
351 <ulink url="https://github.com/libjxl/libjxl">libjxl</ulink> installed.
352 </para>
353-->
354 <para>
355 <parameter>-D ENABLE_BUBBLEWRAP_SANDBOX=ON</parameter>: This switch
356 enables the Bubblewrap sandbox, which helps mitigate the impact of most
357 security vulnerabilities in this package. Change this switch to OFF if
358 you do not want to install <xref linkend="bubblewrap" role="nodep"/>,
359 <xref linkend='libseccomp' role="nodep"/>, or
360 <xref linkend="xdg-dbus-proxy" role="nodep"/>, but note that this may
361 put you at risk.
362 <!-- Note: This works well on both i686 and x86_64. -renodr -->
363 </para>
364
365 <para revision="sysv">
366 <parameter>-D ENABLE_JOURNALD_LOG=OFF</parameter>: This switch disables using the
367 systemd journal for logging errors and debugging information since it
368 is not available on SysV systems.
369 </para>
370
371 <para>
372 <parameter>-D USE_SYSTEM_SYSPROF_CAPTURE=NO</parameter>: This switch
373 disables a hard dependency on <ulink url="&sysprof-url;">sysprof</ulink>.
374 </para>
375
376 <para>
377 <option>-D USE_SYSTEM_MALLOC=ON</option>: This switch enables building
378 against the system installed <application>malloc</application>.
379 </para>
380
381 <para>
382 <option>-D ENABLE_GEOLOCATION=OFF</option>: Use this switch if you don't
383 want to install <xref linkend="geoclue2"/>.
384 </para>
385
386 <para>
387 <option>-D USE_AVIF=OFF</option>: Use this switch if you don't want to
388 install <xref linkend="libavif"/>. Note that you will not have support
389 for AVIF images if you do this.
390 </para>
391
392 <para>
393 <option>-D USE_WOFF2=ON</option>: Use this switch if the optional
394 package <xref linkend="woff2"/> is installed. This adds additional
395 support for fonts.
396 </para>
397
398 <para>
399 <option>-D USE_JPEGXL=OFF</option>: Use this switch if the recommended
400 package <xref linkend="libjxl"/> is not installed. Note that you will not
401 have support for JPEG XL images if this option is passed.
402 </para>
403
404 </sect2>
405
406 <sect2 role="content">
407 <title>Contents</title>
408
409 <segmentedlist>
410 <segtitle>Installed Program</segtitle>
411 <segtitle>Installed Libraries</segtitle>
412 <segtitle>Installed Directories</segtitle>
413
414 <seglistitem>
415 <seg>
416<!-- Moved to /usr/libexec/webkit2gtk-4.0, so shouldn't appear here
417 jsc,
418 MiniBrowser, and -->
419 WebKitWebDriver
420 </seg>
421 <seg>
422 libjavascriptcoregtk-4.1.so,
423 libjavascriptcoregtk-6.0.so,
424 libwebkit2gtk-4.1.so, and
425 libwebkitgtk-6.0.so
426 </seg>
427 <seg>
428 /usr/include/webkitgtk-4.1,
429 /usr/include/webkitgtk-6.0,
430 /usr/lib{,exec}/webkit2gtk-4.1,
431 /usr/lib{,exec}/webkitgtk-6.0,
432 /usr/share/gtk-doc/html/{jsc-glib,webkit2gtk{,-web-extension}}-4.1
433 (optional), and
434 /usr/share/gtk-doc/html/{jsc-glib,webkit2gtk{,-web-process-extension}}-6.0
435 </seg>
436 </seglistitem>
437 </segmentedlist>
438
439 <variablelist>
440 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
441 <?dbfo list-presentation="list"?>
442 <?dbhtml list-presentation="table"?>
443
444<!--
445 <varlistentry id="jsc">
446 <term><command>jsc</command></term>
447 <listitem>
448 <para>
449 is a command-line utility that allows you to run JavaScript programs
450 outside of the context of a web browser.
451 </para>
452 <indexterm zone="webkitgtk jsc">
453 <primary sortas="b-jsc">jsc</primary>
454 </indexterm>
455 </listitem>
456 </varlistentry>
457
458 <varlistentry id="MiniBrowser">
459 <term><command>MiniBrowser</command></term>
460 <listitem>
461 <para>
462 is a very simple graphical browser.
463 </para>
464 <indexterm zone="webkitgtk MiniBrowser">
465 <primary sortas="b-MiniBrowser">MiniBrowser</primary>
466 </indexterm>
467 </listitem>
468 </varlistentry>
469-->
470 <varlistentry id="WebKitWebDriver">
471 <term><command>WebKitWebDriver</command></term>
472 <listitem>
473 <para>
474 allows debugging and automation of web pages and browsers
475 </para>
476 <indexterm zone="webkitgtk WebKitWebDriver">
477 <primary sortas="b-WebKitWebDriver">WebKitWebDriver</primary>
478 </indexterm>
479 </listitem>
480 </varlistentry>
481
482 <varlistentry id="libjavascriptcoregtk-4.1">
483 <term>
484 <filename class="libraryfile">libjavascriptcoregtk-4.1.so</filename>
485 </term>
486 <listitem>
487 <para>
488 contains core JavaScript API functions used by
489 <command>jsc</command> and
490 <filename class="libraryfile">libwebkit2gtk-4.1</filename>
491 </para>
492 <indexterm zone="webkitgtk libjavascriptcoregtk-4.1">
493 <primary sortas="c-libjavascriptcoregtk-4.1">libjavascriptcoregtk-4.1.so</primary>
494 </indexterm>
495 </listitem>
496 </varlistentry>
497
498 <varlistentry id="libjavascriptcoregtk-6.0">
499 <term><filename class="libraryfile">libjavascriptcoregtk-6.0.so</filename></term>
500 <listitem>
501 <para>
502 contains core JavaScript API functions used by
503 <command>jsc</command> and
504 <filename class="libraryfile">libwebkitgtk-6.0</filename>
505 </para>
506 <indexterm zone="webkitgtk libjavascriptcoregtk-6.0">
507 <primary sortas="c-libjavascriptcoregtk-6.0">libjavascriptcoregtk-6.0.so</primary>
508 </indexterm>
509 </listitem>
510 </varlistentry>
511
512 <varlistentry id="libwebkit2gtk-4">
513 <term><filename class="libraryfile">libwebkit2gtk-4.1.so</filename></term>
514 <listitem>
515 <para>
516 contains the <application>WebKit2</application> API functions
517 </para>
518 <indexterm zone="webkitgtk libwebkit2gtk-4">
519 <primary sortas="c-libwebkit2gtk-4">libwebkit2gtk-4.1.so</primary>
520 </indexterm>
521 </listitem>
522 </varlistentry>
523
524 <varlistentry id="libwebkitgtk-6">
525 <term><filename class="libraryfile">libwebkitgtk-6.0.so</filename></term>
526 <listitem>
527 <para>
528 contains the <application>WebKit</application> API functions for
529 GTK-4 applications
530 </para>
531 <indexterm zone="webkitgtk libwebkitgtk-6">
532 <primary sortas="c-libwebkitgtk-6">libwebkitgtk-6.0.so</primary>
533 </indexterm>
534 </listitem>
535 </varlistentry>
536
537 </variablelist>
538
539 </sect2>
540
541</sect1>
Note: See TracBrowser for help on using the repository browser.