source: x/lib/webkitgtk.xml@ 4825f68

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 4825f68 was 42ddc30, checked in by Xi Ruoyao <xry111@…>, 11 months ago

treewide: Replace "User Notes" with "Editor Notes"

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