source: x/lib/webkitgtk.xml@ 7b8b07f8

12.0 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 7b8b07f8 was 7b8b07f8, checked in by Douglas R. Reno <renodr@…>, 10 months ago

Add WebKit consolidated fixes patch.

This fixes several security vulnerabilities and allows it to work
properly in VMs.

  • Property mode set to 100644
File size: 17.9 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 "15b58e6310b4b7852c755dce7de3f2ee">
10 <!ENTITY webkitgtk-size "39 MB">
11 <!ENTITY webkitgtk-buildsize "1.1 GB (200 MB installed, add 152 MB for GTK-4)">
12 <!ENTITY webkitgtk-time "37 SBU (for GTK-3, using parallelism=4, add 37 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 &lfs113_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 <bridgehead renderas="sect3">WebKitGTK Dependencies</bridgehead>
83
84 <bridgehead renderas="sect4">Required</bridgehead>
85 <para role="required">
86 <xref linkend="cairo"/>,
87 <xref linkend="cmake"/>,
88 <xref linkend="gst10-plugins-base"/>,
89 <xref linkend="gst10-plugins-bad"/>,
90 <xref linkend="gtk3"/>,
91 <xref linkend="gtk4"/>,
92 <xref linkend="icu"/>,
93 <xref linkend="lcms2"/>,
94 <xref linkend="libgudev"/>,
95 <xref linkend="libsecret"/>,
96 <xref linkend="libsoup3"/>,
97 <xref linkend="libtasn1"/>,
98 <xref linkend="libwebp"/>,
99 <xref linkend="mesa"/>,
100 <xref linkend="openjpeg2"/>,
101 <xref linkend="ruby"/>,
102 <xref linkend="sqlite"/>,
103 <xref linkend="unifdef"/>,
104 <xref linkend="which"/>, and
105 <xref linkend="wpebackend-fdo"/>
106 </para>
107
108 <bridgehead renderas="sect4">Recommended</bridgehead>
109 <para role="recommended">
110 <xref linkend="enchant"/>,
111 <xref linkend="geoclue2"/>,
112 <xref linkend="gobject-introspection"/>,
113 <xref linkend="hicolor-icon-theme"/>, and
114 <xref linkend="libavif"/>
115 </para>
116
117 <bridgehead renderas="sect4">Optional</bridgehead>
118 <para role="optional">
119 <xref linkend="bubblewrap"/>,
120 <xref linkend="gi-docgen"/>,
121 <xref linkend="harfbuzz"/>,
122 <xref linkend="wayland"/>,
123 <xref linkend="woff2"/>,
124 <ulink url="https://ccache.dev/">ccache</ulink>,
125 <ulink url="https://sourceforge.net/projects/hunspell/files/Hyphen/">Hyphen</ulink>,
126 <!--<ulink url="https://github.com/AOMediaCodec/libavif">libavif</ulink>,-->
127 <ulink url="https://github.com/libjxl/libjxl">libjxl</ulink>,
128 <ulink url="https://gnome.pages.gitlab.gnome.org/libmanette/">libmanette</ulink>, and
129 <ulink url="https://github.com/flatpak/xdg-dbus-proxy">xdg-dbus-proxy</ulink>
130 </para>
131
132 <para condition="html" role="usernotes">
133 Editor Notes: <ulink url="&blfs-wiki;/webkitgtk"/>
134 </para>
135 </sect2>
136
137 <sect2 role="installation">
138 <title>Installation of WebKitGTK</title>
139
140 <bridgehead renderas="sect3">Installation of
141 <application>WebKitGTK</application></bridgehead>
142
143<!--
144 <para>
145 First, fix a problem when not using BUBBLEWRAP_SANDBOX:
146 </para>
147
148<screen><userinput>sed -i '39,66 s:^://:' Source/WTF/wtf/glib/Sandbox.cpp</userinput></screen>
149-->
150
151 <important>
152 <para>
153 This package allows building with either GTK-3 or GTK-4, but not both
154 in the same build. The GTK-4 version is needed for packages such as
155 <xref linkend="epiphany"/>. Other packages, such as
156 <xref linkend="balsa"/> or <xref linkend="evolution"/>, require the
157 GTK-3 version. Both versions can be installed side by side on the
158 same system. We give build instructions for both cases below, but
159 the only difference is the setting of <command>-DUSE_GTK4</command>
160 </para>
161 </important>
162
163 <para>
164 First, fix several security vulnerabilities and some runtime problems
165 when running in a virtual machine:
166 </para>
167
168<screen><userinput remap="pre">patch -Np1 -i ../webkitgtk-&webkitgtk-version;-consolidated_fixes-1.patch</userinput></screen>
169
170 <para>
171 If you want to install the GTK+-3 version of
172 <application>WebKitGTK</application>, run the following commands:
173 </para>
174
175<screen revision="systemd"><userinput>mkdir -vp build &amp;&amp;
176cd build &amp;&amp;
177
178cmake -DCMAKE_BUILD_TYPE=Release \
179 -DCMAKE_INSTALL_PREFIX=/usr \
180 -DCMAKE_SKIP_RPATH=ON \
181 -DPORT=GTK \
182 -DLIB_INSTALL_DIR=/usr/lib \
183 -DUSE_LIBHYPHEN=OFF \
184 -DENABLE_GAMEPAD=OFF \
185 -DENABLE_MINIBROWSER=ON \
186 -DENABLE_DOCUMENTATION=OFF \
187 -DUSE_WOFF2=OFF \
188 -DUSE_GTK4=OFF \
189 -DUSE_WPE_RENDERER=ON \
190 -DUSE_JPEGXL=OFF \
191 -DENABLE_BUBBLEWRAP_SANDBOX=OFF \
192 -Wno-dev -G Ninja .. &amp;&amp;
193ninja</userinput></screen>
194
195<screen revision="sysv"><userinput>mkdir -vp build &amp;&amp;
196cd build &amp;&amp;
197
198cmake -DCMAKE_BUILD_TYPE=Release \
199 -DCMAKE_INSTALL_PREFIX=/usr \
200 -DCMAKE_SKIP_RPATH=ON \
201 -DPORT=GTK \
202 -DLIB_INSTALL_DIR=/usr/lib \
203 -DUSE_LIBHYPHEN=OFF \
204 -DENABLE_GAMEPAD=OFF \
205 -DENABLE_MINIBROWSER=ON \
206 -DENABLE_DOCUMENTATION=OFF \
207 -DUSE_WOFF2=OFF \
208 -DUSE_GTK4=OFF \
209 -DUSE_JPEGXL=OFF \
210 -DUSE_WPE_RENDERER=ON \
211 -DENABLE_JOURNALD_LOG=OFF \
212 -DENABLE_BUBBLEWRAP_SANDBOX=OFF \
213 -Wno-dev -G Ninja .. &amp;&amp;
214ninja</userinput></screen>
215
216 <para>
217 This package does not have a working test suite. However, there is a
218 usable basic graphical web browser in the build directory,
219 <application>build/bin/MiniBrowser</application>. If launching it fails,
220 there is a problem with the build.
221 </para>
222
223<!-- Since we're using Ninja now instead of autotools, this isn't valid anymore
224 <note><para>
225 When installing, the Makefile does some additional compiling and linking.
226 If you do not have Xorg in /usr, the LIBRARY_PATH and PKG_CONFIG_PATH
227 variables need to be defined for the root user. If using sudo to assume
228 root, use the -E option to pass your current environment variables for the
229 install process.
230 </para></note>
231-->
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=OFF \
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=OFF \
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=OFF</parameter>: Remove this
356 switch if the optional packages <xref linkend="bubblewrap"/> and
357 <ulink url="https://github.com/flatpak/xdg-dbus-proxy">xdg-dbus-proxy</ulink>
358 are installed.
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 <!-- Uncomment once GTK4 support works, or when it doesn't require
390 a development version of libsoup.
391 <para>
392 <option>-DUSE_GTK4=ON</option>: Use this switch if <xref linkend="gtk4"/>
393 is installed and you wish to build GTK4 support.
394 </para>
395 -->
396
397 </sect2>
398
399 <sect2 role="content">
400 <title>Contents</title>
401
402 <segmentedlist>
403 <segtitle>Installed Program</segtitle>
404 <segtitle>Installed Libraries</segtitle>
405 <segtitle>Installed Directories</segtitle>
406
407 <seglistitem>
408 <seg>
409<!-- Moved to /usr/libexec/webkit2gtk-4.0, so shouldn't appear here
410 jsc,
411 MiniBrowser, and -->
412 WebKitWebDriver
413 </seg>
414 <seg>
415 libjavascriptcoregtk-4.1.so,
416 libjavascriptcoregtk-6.0.so,
417 libwebkit2gtk-4.1.so, and
418 libwebkitgtk-6.0.so
419 </seg>
420 <seg>
421 /usr/include/webkitgtk-4.1,
422 /usr/include/webkitgtk-6.0,
423 /usr/lib{,exec}/webkit2gtk-4.1,
424 /usr/lib{,exec}/webkitgtk-6.0, and
425 /usr/share/gtk-doc/html/{jsc-glib,webkit2gtk{,-web-extension}}-4.1
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.