source: x/lib/webkitgtk.xml@ 5a17bbb

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

Update to WebKitGTK+-2.41.90

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