source: x/lib/webkitgtk.xml@ 2186e70d

12.1 ken/TL2024 lazarus plabs/newcss python3.11 rahul/power-profiles-daemon trunk xry111/llvm18
Last change on this file since 2186e70d was 2186e70d, checked in by Douglas R. Reno <renodr@…>, 6 months ago

Update to webkitgtk-2.42.3 (Security Update)

  • Property mode set to 100644
File size: 17.8 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 "de1b3611ee738a4173abb5e897bc09e3">
10 <!ENTITY webkitgtk-size "31 MB">
11 <!ENTITY webkitgtk-buildsize "1.2 GB (191 MB installed, add 146 MB for GTK-4)">
12 <!ENTITY webkitgtk-time "29 SBU (for GTK-3, using parallelism=8, add 28 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;-upstream_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 <!-- https://bugs.webkit.org/show_bug.cgi?id=262777
148 https://github.com/WebKit/WebKit/commit/c29a26a02441 -->
149
150<!-- Fixed in 2.42.2
151 <para>
152 First, fix an issue breaking Web sites relying on Javascript Blob API:
153 </para>
154
155<screen><userinput>sed "/bool BlobURL::isSecureBlobURL/,/^}/ \
156 s/return false/return SecurityOrigin::isSecure(getOriginURL(url))/" \
157 -i Source/WebCore/fileapi/BlobURL.cpp</userinput></screen>
158-->
159
160 <important>
161 <para>
162 This package allows building with either GTK-3 or GTK-4, but not both
163 in the same build. The GTK-4 version is needed for packages such as
164 <xref linkend="epiphany"/>. Other packages, such as
165 <xref linkend="balsa"/> or <xref linkend="evolution"/>, require the
166 GTK-3 version. Both versions can be installed side by side on the
167 same system. We give build instructions for both cases below, but
168 the only difference is the setting of <command>-DUSE_GTK4</command>
169 </para>
170 </important>
171
172<!--
173 <para>
174 First, fix a build failure caused by libxml2-2.12.x:
175 </para>
176
177<screen><userinput remap="pre">patch -Np1 -i ../webkitgtk-&webkitgtk-version;-upstream_fixes-1.patch</userinput></screen>
178-->
179
180 <para>
181 If you want to install the GTK+-3 version of
182 <application>WebKitGTK</application>, run the following commands:
183 </para>
184
185<screen revision="systemd"><userinput>mkdir -vp build &amp;&amp;
186cd build &amp;&amp;
187
188cmake -DCMAKE_BUILD_TYPE=Release \
189 -DCMAKE_INSTALL_PREFIX=/usr \
190 -DCMAKE_SKIP_RPATH=ON \
191 -DPORT=GTK \
192 -DLIB_INSTALL_DIR=/usr/lib \
193 -DUSE_LIBHYPHEN=OFF \
194 -DENABLE_GAMEPAD=OFF \
195 -DENABLE_MINIBROWSER=ON \
196 -DENABLE_DOCUMENTATION=OFF \
197 -DUSE_WOFF2=OFF \
198 -DUSE_GTK4=OFF \
199 -DUSE_WPE_RENDERER=ON \
200 -DUSE_JPEGXL=OFF \
201 -DENABLE_BUBBLEWRAP_SANDBOX=ON \
202 -Wno-dev -G Ninja .. &amp;&amp;
203ninja</userinput></screen>
204
205<screen revision="sysv"><userinput>mkdir -vp build &amp;&amp;
206cd build &amp;&amp;
207
208cmake -DCMAKE_BUILD_TYPE=Release \
209 -DCMAKE_INSTALL_PREFIX=/usr \
210 -DCMAKE_SKIP_RPATH=ON \
211 -DPORT=GTK \
212 -DLIB_INSTALL_DIR=/usr/lib \
213 -DUSE_LIBHYPHEN=OFF \
214 -DENABLE_GAMEPAD=OFF \
215 -DENABLE_MINIBROWSER=ON \
216 -DENABLE_DOCUMENTATION=OFF \
217 -DUSE_WOFF2=OFF \
218 -DUSE_GTK4=OFF \
219 -DUSE_JPEGXL=OFF \
220 -DUSE_WPE_RENDERER=ON \
221 -DENABLE_JOURNALD_LOG=OFF \
222 -DENABLE_BUBBLEWRAP_SANDBOX=ON \
223 -Wno-dev -G Ninja .. &amp;&amp;
224ninja</userinput></screen>
225
226 <para>
227 This package does not have a working test suite. However, there is a
228 usable basic graphical web browser in the build directory,
229 <application>build/bin/MiniBrowser</application>. If launching it fails,
230 there is a problem with the build.
231 </para>
232
233 <para>
234 Now, as the <systemitem class="username">root</systemitem> user:
235 </para>
236
237<screen role="root"><userinput>ninja install</userinput></screen>
238
239 <para>
240 As the <option>-DENABLE_DOCUMENTATION=OFF</option> option is used,
241 the documentation is not rebuilt nor installed now. If you need the
242 documentation, you can either install <xref linkend='gi-docgen'/>
243 and remove this option from the <command>cmake</command> command,
244 or install the pre-built documentation instead:
245 </para>
246
247<screen role='root'><userinput>install -vdm755 /usr/share/gtk-doc/html/{jsc-glib,webkit2gtk{,-web-extension}}-4.1 &amp;&amp;
248install -vm644 ../Documentation/jsc-glib-4.1/* \
249 /usr/share/gtk-doc/html/jsc-glib-4.1 &amp;&amp;
250install -vm644 ../Documentation/webkit2gtk-4.1/* \
251 /usr/share/gtk-doc/html/webkit2gtk-4.1 &amp;&amp;
252install -vm644 ../Documentation/webkit2gtk-web-extension-4.1/* \
253 /usr/share/gtk-doc/html/webkit2gtk-web-extension-4.1</userinput></screen>
254
255 <para>
256 If you want to install the GTK4 version of
257 <application>WebKitGTK</application>, run the following commands:
258 </para>
259
260<screen revision="systemd"><userinput>rm -rf * .[^.]* &amp;&amp;
261
262cmake -DCMAKE_BUILD_TYPE=Release \
263 -DCMAKE_INSTALL_PREFIX=/usr \
264 -DCMAKE_SKIP_RPATH=ON \
265 -DPORT=GTK \
266 -DLIB_INSTALL_DIR=/usr/lib \
267 -DUSE_LIBHYPHEN=OFF \
268 -DENABLE_GAMEPAD=OFF \
269 -DENABLE_MINIBROWSER=ON \
270 -DENABLE_DOCUMENTATION=OFF \
271 -DUSE_WOFF2=OFF \
272 -DUSE_GTK4=ON \
273 -DUSE_JPEGXL=OFF \
274 -DUSE_WPE_RENDERER=ON \
275 -DENABLE_BUBBLEWRAP_SANDBOX=ON \
276 -Wno-dev -G Ninja .. &amp;&amp;
277ninja</userinput></screen>
278
279<screen revision="sysv"><userinput>rm -rf * .[^.]* &amp;&amp;
280
281cmake -DCMAKE_BUILD_TYPE=Release \
282 -DCMAKE_INSTALL_PREFIX=/usr \
283 -DCMAKE_SKIP_RPATH=ON \
284 -DPORT=GTK \
285 -DLIB_INSTALL_DIR=/usr/lib \
286 -DUSE_LIBHYPHEN=OFF \
287 -DENABLE_GAMEPAD=OFF \
288 -DENABLE_MINIBROWSER=ON \
289 -DENABLE_DOCUMENTATION=OFF \
290 -DUSE_WOFF2=OFF \
291 -DUSE_GTK4=ON \
292 -DUSE_JPEGXL=OFF \
293 -DUSE_WPE_RENDERER=ON \
294 -DENABLE_JOURNALD_LOG=OFF \
295 -DENABLE_BUBBLEWRAP_SANDBOX=ON \
296 -Wno-dev -G Ninja .. &amp;&amp;
297ninja</userinput></screen>
298
299 <para>
300 Now, as the <systemitem class="username">root</systemitem> user:
301 </para>
302
303<screen role="root"><userinput>ninja install</userinput></screen>
304
305 </sect2>
306
307 <sect2 role="commands">
308 <title>Command Explanations</title>
309
310<!-- <para>
311 <command>sed ... TextCheckerEnchant.cpp</command>: This command
312 is needed to allow the build to complete with enchant-2.x.
313 </para> -->
314
315 <para>
316 <parameter>-DUSE_LIBHYPHEN=OFF</parameter>: This switch disables the
317 default automatic hyphenation implementation. You need to install
318 <ulink
319 url="https://sourceforge.net/projects/hunspell/files/Hyphen/">Hyphen</ulink>
320 if you wish to enable it (replacing OFF with ON or just removing
321 the switch).
322 </para>
323
324 <para>
325 <parameter>-DENABLE_DOCUMENTATION=OFF</parameter>: This switch disables
326 regenerating the documentation. Remove this switch if you have
327 <xref linkend="gi-docgen"/>
328 installed and wish to regenerate the documentation.
329 </para>
330
331 <para>
332 <parameter>-DENABLE_GAMEPAD=OFF</parameter>: This switch disables
333 gamepad support. Remove this switch if you have
334 <ulink url="https://gnome.pages.gitlab.gnome.org/libmanette/">libmanette</ulink>
335 installed and wish to enable it.
336 </para>
337
338 <para>
339 <parameter>-DENABLE_MINIBROWSER=ON</parameter>: This switch enables
340 compiling and installing the MiniBrowser.
341 </para>
342
343 <para>
344 <parameter>-DUSE_WPE_RENDERER=ON</parameter>: This switch uses the WPE
345 renderer, which is recommended by upstream.
346 </para>
347
348 <para>
349 <parameter>-DUSE_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>-DENABLE_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>-DENABLE_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 <option>-DUSE_SYSTEM_MALLOC=ON</option>: This switch enables building
373 against the system installed <application>malloc</application>.
374 </para>
375
376 <para>
377 <option>-DENABLE_GEOLOCATION=OFF</option>: Use this switch if you don't
378 want to install <xref linkend="geoclue2"/>.
379 </para>
380
381 <para>
382 <option>-DUSE_AVIF=OFF</option>: Use this switch if you don't want to
383 install <xref linkend="libavif"/>. Note that you will not have support
384 for AVIF images if you do this.
385 </para>
386
387 <para>
388 <option>-DUSE_WOFF2=ON</option>: Use this switch if the optional
389 package <xref linkend="woff2"/> is installed. This adds additional
390 support for fonts.
391 </para>
392
393 </sect2>
394
395 <sect2 role="content">
396 <title>Contents</title>
397
398 <segmentedlist>
399 <segtitle>Installed Program</segtitle>
400 <segtitle>Installed Libraries</segtitle>
401 <segtitle>Installed Directories</segtitle>
402
403 <seglistitem>
404 <seg>
405<!-- Moved to /usr/libexec/webkit2gtk-4.0, so shouldn't appear here
406 jsc,
407 MiniBrowser, and -->
408 WebKitWebDriver
409 </seg>
410 <seg>
411 libjavascriptcoregtk-4.1.so,
412 libjavascriptcoregtk-6.0.so,
413 libwebkit2gtk-4.1.so, and
414 libwebkitgtk-6.0.so
415 </seg>
416 <seg>
417 /usr/include/webkitgtk-4.1,
418 /usr/include/webkitgtk-6.0,
419 /usr/lib{,exec}/webkit2gtk-4.1,
420 /usr/lib{,exec}/webkitgtk-6.0, and
421 /usr/share/gtk-doc/html/{jsc-glib,webkit2gtk{,-web-extension}}-4.1
422 </seg>
423 </seglistitem>
424 </segmentedlist>
425
426 <variablelist>
427 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
428 <?dbfo list-presentation="list"?>
429 <?dbhtml list-presentation="table"?>
430
431<!--
432 <varlistentry id="jsc">
433 <term><command>jsc</command></term>
434 <listitem>
435 <para>
436 is a command-line utility that allows you to run JavaScript programs
437 outside of the context of a web browser.
438 </para>
439 <indexterm zone="webkitgtk jsc">
440 <primary sortas="b-jsc">jsc</primary>
441 </indexterm>
442 </listitem>
443 </varlistentry>
444
445 <varlistentry id="MiniBrowser">
446 <term><command>MiniBrowser</command></term>
447 <listitem>
448 <para>
449 is a very simple graphical browser.
450 </para>
451 <indexterm zone="webkitgtk MiniBrowser">
452 <primary sortas="b-MiniBrowser">MiniBrowser</primary>
453 </indexterm>
454 </listitem>
455 </varlistentry>
456-->
457 <varlistentry id="WebKitWebDriver">
458 <term><command>WebKitWebDriver</command></term>
459 <listitem>
460 <para>
461 allows debugging and automation of web pages and browsers
462 </para>
463 <indexterm zone="webkitgtk WebKitWebDriver">
464 <primary sortas="b-WebKitWebDriver">WebKitWebDriver</primary>
465 </indexterm>
466 </listitem>
467 </varlistentry>
468
469 <varlistentry id="libjavascriptcoregtk-4.1">
470 <term>
471 <filename class="libraryfile">libjavascriptcoregtk-4.1.so</filename>
472 </term>
473 <listitem>
474 <para>
475 contains core JavaScript API functions used by
476 <command>jsc</command> and
477 <filename class="libraryfile">libwebkit2gtk-4.1</filename>
478 </para>
479 <indexterm zone="webkitgtk libjavascriptcoregtk-4.1">
480 <primary sortas="c-libjavascriptcoregtk-4.1">libjavascriptcoregtk-4.1.so</primary>
481 </indexterm>
482 </listitem>
483 </varlistentry>
484
485 <varlistentry id="libjavascriptcoregtk-6.0">
486 <term><filename class="libraryfile">libjavascriptcoregtk-6.0.so</filename></term>
487 <listitem>
488 <para>
489 contains core JavaScript API functions used by
490 <command>jsc</command> and
491 <filename class="libraryfile">libwebkitgtk-6.0</filename>
492 </para>
493 <indexterm zone="webkitgtk libjavascriptcoregtk-6.0">
494 <primary sortas="c-libjavascriptcoregtk-6.0">libjavascriptcoregtk-6.0.so</primary>
495 </indexterm>
496 </listitem>
497 </varlistentry>
498
499 <varlistentry id="libwebkit2gtk-4">
500 <term><filename class="libraryfile">libwebkit2gtk-4.1.so</filename></term>
501 <listitem>
502 <para>
503 contains the <application>WebKit2</application> API functions
504 </para>
505 <indexterm zone="webkitgtk libwebkit2gtk-4">
506 <primary sortas="c-libwebkit2gtk-4">libwebkit2gtk-4.1.so</primary>
507 </indexterm>
508 </listitem>
509 </varlistentry>
510
511 <varlistentry id="libwebkitgtk-6">
512 <term><filename class="libraryfile">libwebkitgtk-6.0.so</filename></term>
513 <listitem>
514 <para>
515 contains the <application>WebKit</application> API functions for
516 GTK-4 applications
517 </para>
518 <indexterm zone="webkitgtk libwebkitgtk-6">
519 <primary sortas="c-libwebkitgtk-6">libwebkitgtk-6.0.so</primary>
520 </indexterm>
521 </listitem>
522 </varlistentry>
523
524 </variablelist>
525
526 </sect2>
527
528</sect1>
Note: See TracBrowser for help on using the repository browser.