source: x/lib/webkitgtk.xml@ a927adc

12.1 ken/TL2024 lazarus plabs/newcss python3.11 rahul/power-profiles-daemon trunk xry111/llvm18
Last change on this file since a927adc was a927adc, checked in by Pierre Labastie <pierre.labastie@…>, 6 months ago

Remove editor note link in webkitgtk

The wiki page contained obsolete information and has been removed.

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