source: x/lib/webkitgtk.xml@ 9acdb9d

lazarus trunk
Last change on this file since 9acdb9d was 9acdb9d, checked in by Xi Ruoyao <xry111@…>, 2 months ago

Update to webkitgtk-2.44.0 (#19478)

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