source: x/lib/webkitgtk.xml@ d1857f3

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

Update to webkitgtk-2.42.2

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