source: x/lib/webkitgtk.xml@ 49b913d2

12.1 ken/TL2024 ken/tuningfonts lazarus plabs/newcss python3.11 rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18
Last change on this file since 49b913d2 was a681357, checked in by Douglas R. Reno <renodr@…>, 8 months ago

Update to WebKitGTK+-2.42.1 (Security Update)

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