source: x/lib/webkitgtk.xml@ d0c049f

lazarus trunk
Last change on this file since d0c049f was d0c049f, checked in by Douglas R. Reno <renodr@…>, 6 weeks ago

Update to WebKitGTK-2.44.1

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