source: x/lib/webkitgtk.xml@ bf70a38

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 bf70a38 was bf70a38, checked in by Xi Ruoyao <xry111@…>, 7 months ago

webkitgtk: Fix an issue breaking various Web sites

There is a regression in WebKitGTK-2.42.1 breaking various Web sites.
See the linked bug report and its duplicates.

The fix is a simple change, so apply it as a sed now.

BugLink: https://bugs.webkit.org/show_bug.cgi?id=262777
Link: https://github.com/WebKit/WebKit/commit/c29a26a02441

  • Property mode set to 100644
File size: 17.9 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 "57b59842ee1e9987a3efce221fe8c69d">
10 <!ENTITY webkitgtk-size "36 MB">
11 <!ENTITY webkitgtk-buildsize "1.2 GB (198 MB installed, add 153 MB for GTK-4)">
12 <!ENTITY webkitgtk-time "45 SBU (for GTK-3, using parallelism=4, add 46 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;-consolidated_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 <para condition="html" role="usernotes">
137 Editor Notes: <ulink url="&blfs-wiki;/webkitgtk"/>
138 </para>
139 </sect2>
140
141 <sect2 role="installation">
142 <title>Installation of WebKitGTK</title>
143
144 <bridgehead renderas="sect3">Installation of
145 <application>WebKitGTK</application></bridgehead>
146
147 <!-- https://bugs.webkit.org/show_bug.cgi?id=262777
148 https://github.com/WebKit/WebKit/commit/c29a26a02441 -->
149 <para>
150 First, fix an issue breaking Web sites relying on Javascript Blob API:
151 </para>
152
153<screen><userinput>sed "/bool BlobURL::isSecureBlobURL/,/^}/ \
154 s/return false/return SecurityOrigin::isSecure(getOriginURL(url))/" \
155 -i Source/WebCore/fileapi/BlobURL.cpp</userinput></screen>
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 several security vulnerabilities and some runtime problems
172 when running in a virtual machine:
173 </para>
174
175<screen><userinput remap="pre">patch -Np1 -i ../webkitgtk-&webkitgtk-version;-consolidated_fixes-1.patch</userinput></screen>
176-->
177
178 <para>
179 If you want to install the GTK+-3 version of
180 <application>WebKitGTK</application>, run the following commands:
181 </para>
182
183<screen revision="systemd"><userinput>mkdir -vp build &amp;&amp;
184cd build &amp;&amp;
185
186cmake -DCMAKE_BUILD_TYPE=Release \
187 -DCMAKE_INSTALL_PREFIX=/usr \
188 -DCMAKE_SKIP_RPATH=ON \
189 -DPORT=GTK \
190 -DLIB_INSTALL_DIR=/usr/lib \
191 -DUSE_LIBHYPHEN=OFF \
192 -DENABLE_GAMEPAD=OFF \
193 -DENABLE_MINIBROWSER=ON \
194 -DENABLE_DOCUMENTATION=OFF \
195 -DUSE_WOFF2=OFF \
196 -DUSE_GTK4=OFF \
197 -DUSE_WPE_RENDERER=ON \
198 -DUSE_JPEGXL=OFF \
199 -DENABLE_BUBBLEWRAP_SANDBOX=ON \
200 -Wno-dev -G Ninja .. &amp;&amp;
201ninja</userinput></screen>
202
203<screen revision="sysv"><userinput>mkdir -vp build &amp;&amp;
204cd build &amp;&amp;
205
206cmake -DCMAKE_BUILD_TYPE=Release \
207 -DCMAKE_INSTALL_PREFIX=/usr \
208 -DCMAKE_SKIP_RPATH=ON \
209 -DPORT=GTK \
210 -DLIB_INSTALL_DIR=/usr/lib \
211 -DUSE_LIBHYPHEN=OFF \
212 -DENABLE_GAMEPAD=OFF \
213 -DENABLE_MINIBROWSER=ON \
214 -DENABLE_DOCUMENTATION=OFF \
215 -DUSE_WOFF2=OFF \
216 -DUSE_GTK4=OFF \
217 -DUSE_JPEGXL=OFF \
218 -DUSE_WPE_RENDERER=ON \
219 -DENABLE_JOURNALD_LOG=OFF \
220 -DENABLE_BUBBLEWRAP_SANDBOX=ON \
221 -Wno-dev -G Ninja .. &amp;&amp;
222ninja</userinput></screen>
223
224 <para>
225 This package does not have a working test suite. However, there is a
226 usable basic graphical web browser in the build directory,
227 <application>build/bin/MiniBrowser</application>. If launching it fails,
228 there is a problem with the build.
229 </para>
230
231 <para>
232 Now, as the <systemitem class="username">root</systemitem> user:
233 </para>
234
235<screen role="root"><userinput>ninja install</userinput></screen>
236
237 <para>
238 As the <option>-DENABLE_DOCUMENTATION=OFF</option> option is used,
239 the documentation is not rebuilt nor installed now. If you need the
240 documentation, you can either install <xref linkend='gi-docgen'/>
241 and remove this option from the <command>cmake</command> command,
242 or install the pre-built documentation instead:
243 </para>
244
245<screen role='root'><userinput>install -vdm755 /usr/share/gtk-doc/html/{jsc-glib,webkit2gtk{,-web-extension}}-4.1 &amp;&amp;
246install -vm644 ../Documentation/jsc-glib-4.1/* \
247 /usr/share/gtk-doc/html/jsc-glib-4.1 &amp;&amp;
248install -vm644 ../Documentation/webkit2gtk-4.1/* \
249 /usr/share/gtk-doc/html/webkit2gtk-4.1 &amp;&amp;
250install -vm644 ../Documentation/webkit2gtk-web-extension-4.1/* \
251 /usr/share/gtk-doc/html/webkit2gtk-web-extension-4.1</userinput></screen>
252
253 <para>
254 If you want to install the GTK4 version of
255 <application>WebKitGTK</application>, run the following commands:
256 </para>
257
258<screen revision="systemd"><userinput>rm -rf * .[^.]* &amp;&amp;
259
260cmake -DCMAKE_BUILD_TYPE=Release \
261 -DCMAKE_INSTALL_PREFIX=/usr \
262 -DCMAKE_SKIP_RPATH=ON \
263 -DPORT=GTK \
264 -DLIB_INSTALL_DIR=/usr/lib \
265 -DUSE_LIBHYPHEN=OFF \
266 -DENABLE_GAMEPAD=OFF \
267 -DENABLE_MINIBROWSER=ON \
268 -DENABLE_DOCUMENTATION=OFF \
269 -DUSE_WOFF2=OFF \
270 -DUSE_GTK4=ON \
271 -DUSE_JPEGXL=OFF \
272 -DUSE_WPE_RENDERER=ON \
273 -DENABLE_BUBBLEWRAP_SANDBOX=ON \
274 -Wno-dev -G Ninja .. &amp;&amp;
275ninja</userinput></screen>
276
277<screen revision="sysv"><userinput>rm -rf * .[^.]* &amp;&amp;
278
279cmake -DCMAKE_BUILD_TYPE=Release \
280 -DCMAKE_INSTALL_PREFIX=/usr \
281 -DCMAKE_SKIP_RPATH=ON \
282 -DPORT=GTK \
283 -DLIB_INSTALL_DIR=/usr/lib \
284 -DUSE_LIBHYPHEN=OFF \
285 -DENABLE_GAMEPAD=OFF \
286 -DENABLE_MINIBROWSER=ON \
287 -DENABLE_DOCUMENTATION=OFF \
288 -DUSE_WOFF2=OFF \
289 -DUSE_GTK4=ON \
290 -DUSE_JPEGXL=OFF \
291 -DUSE_WPE_RENDERER=ON \
292 -DENABLE_JOURNALD_LOG=OFF \
293 -DENABLE_BUBBLEWRAP_SANDBOX=ON \
294 -Wno-dev -G Ninja .. &amp;&amp;
295ninja</userinput></screen>
296
297 <para>
298 Now, as the <systemitem class="username">root</systemitem> user:
299 </para>
300
301<screen role="root"><userinput>ninja install</userinput></screen>
302
303 </sect2>
304
305 <sect2 role="commands">
306 <title>Command Explanations</title>
307
308<!-- <para>
309 <command>sed ... TextCheckerEnchant.cpp</command>: This command
310 is needed to allow the build to complete with enchant-2.x.
311 </para> -->
312
313 <para>
314 <parameter>-DUSE_LIBHYPHEN=OFF</parameter>: This switch disables the
315 default automatic hyphenation implementation. You need to install
316 <ulink
317 url="https://sourceforge.net/projects/hunspell/files/Hyphen/">Hyphen</ulink>
318 if you wish to enable it (replacing OFF with ON or just removing
319 the switch).
320 </para>
321
322 <para>
323 <parameter>-DENABLE_DOCUMENTATION=OFF</parameter>: This switch disables
324 regenerating the documentation. Remove this switch if you have
325 <xref linkend="gi-docgen"/>
326 installed and wish to regenerate the documentation.
327 </para>
328
329 <para>
330 <parameter>-DENABLE_GAMEPAD=OFF</parameter>: This switch disables
331 gamepad support. Remove this switch if you have
332 <ulink url="https://gnome.pages.gitlab.gnome.org/libmanette/">libmanette</ulink>
333 installed and wish to enable it.
334 </para>
335
336 <para>
337 <parameter>-DENABLE_MINIBROWSER=ON</parameter>: This switch enables
338 compiling and installing the MiniBrowser.
339 </para>
340
341 <para>
342 <parameter>-DUSE_WPE_RENDERER=ON</parameter>: This switch uses the WPE
343 renderer, which is recommended by upstream.
344 </para>
345
346 <para>
347 <parameter>-DUSE_JPEGXL=OFF</parameter>: This switch turns off support
348 for JPEG-XL images. Remove it if you have the optional package
349 <ulink url="https://github.com/libjxl/libjxl">libjxl</ulink> installed.
350 </para>
351
352 <para>
353 <parameter>-DENABLE_BUBBLEWRAP_SANDBOX=ON</parameter>: This switch
354 enables the Bubblewrap sandbox, which helps mitigate the impact of most
355 security vulnerabilities in this package. Change this switch to OFF if
356 you do not want to install <xref linkend="bubblewrap" role="nodep"/>,
357 <xref linkend='libseccomp' role="nodep"/>, or
358 <xref linkend="xdg-dbus-proxy" role="nodep"/>, but note that this may
359 put you at risk.
360 <!-- Note: This works well on both i686 and x86_64. -renodr -->
361 </para>
362
363 <para revision="sysv">
364 <parameter>-DENABLE_JOURNALD_LOG=OFF</parameter>: This switch disables using the
365 systemd journal for logging errors and debugging information since it
366 is not available on SysV systems.
367 </para>
368
369 <para>
370 <option>-DUSE_SYSTEM_MALLOC=ON</option>: This switch enables building
371 against the system installed <application>malloc</application>.
372 </para>
373
374 <para>
375 <option>-DENABLE_GEOLOCATION=OFF</option>: Use this switch if you don't
376 want to install <xref linkend="geoclue2"/>.
377 </para>
378
379 <para>
380 <option>-DUSE_AVIF=OFF</option>: Use this switch if you don't want to
381 install <xref linkend="libavif"/>. Note that you will not have support
382 for AVIF images if you do this.
383 </para>
384
385 <para>
386 <option>-DUSE_WOFF2=ON</option>: Use this switch if the optional
387 package <xref linkend="woff2"/> is installed. This adds additional
388 support for fonts.
389 </para>
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.