source: x/lib/webkitgtk.xml@ 846bcc9

trunk
Last change on this file since 846bcc9 was 846bcc9, checked in by Xi Ruoyao <xry111@…>, 3 weeks ago

Add xinclude for -DCMAKE_SKIP_INSTALL_RPATH explanation and use it

Always use "ON" for this boolean value.

Why does cmake allow too many boolean values (ON/OFF, TRUE/FALSE,
YES/NO) anyway?!

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