Package Details: webkitgtk 3:2.4.11-27

Git Clone URL: https://aur.archlinux.org/webkitgtk.git (read-only, click to copy)
Package Base: webkitgtk
Description: Legacy Web content engine for GTK+ 3
Upstream URL: https://webkitgtk.org/
Licenses: custom
Conflicts: libwebkit3, webkitgtk3
Provides: libwebkit3, webkitgtk3
Replaces: libwebkit3, webkitgtk3
Submitter: City-busz
Maintainer: frealgagu
Last Packager: frealgagu
Votes: 70
Popularity: 0.97
First Submitted: 2017-06-30 07:40 (UTC)
Last Updated: 2023-08-15 19:11 (UTC)

Pinned Comments

frealgagu commented on 2019-04-14 18:13 (UTC) (edited on 2020-12-06 03:31 (UTC) by frealgagu)

FAQ

Q: What's the difference between this package and extra/webkit2gtk?

A: webkitgtk/webkitgtk2 provides WebKit1 API/ABI, which is not compatible with WebKit2 API/ABI provided by extra/webkit2gtk. WebKitGTK+ 2.4.x is the latest branch that provides WebKit1 API. Later branches provides WebKit2 API only.

Please don't flag it as out-of-date.


Q: Are there binaries for this package somewhere?

A: I maintain the latest built package at https://github.com/frealgagu/archlinux.webkitgtk/releases


Q: "error while loading shared libraries: libicui18n.so.62: cannot open shared object file: No such file or directory"

A: You'll need to rebuild against the latest version of ICU.


Q: "error: ‘WTF::StringImpl::StaticASCIILiteraicASCIILiteral’ has not been declared" or any enchant errors.

A: If you are building in parallel, try disabling parallel using -j1 in /etc/makepkg.conf


Q: Why building takes too long time?

A: WebKit is inherently big and complex. You can modify /etc/makepkg.conf or PKGBUILD directly to build it in parallel.

  • Change "make all stamp-po" by "make -j x all stamp-po" in PKGBUILD replacing x by cores your machine has. (Thanks to @MadMe)

  • Change /etc/makepkg.conf in that way: https://wiki.archlinux.org/index.php/makepkg#Parallel_compilation under # ARCHITECTURE, COMPILE FLAGS use MAKEFLAGS="-j9" # It should be one more than your virtual CPUs. (Thanks to @tuxsavvy).

However be pending if errors occur as mentioned in previous question.


Q: How much I want to wait to a successful compilation?

A: It varies of your PC's processor and RAM, the times shared in the comments are as follow:

  • 3.5 hours to build on core i5 laptop with 8G of RAM, makeflags j4. (@cabbage)

  • 13.5 hours to build on AMD Athlon X2, makeflags j1 (@Bonnietwin).

  • 5-6 hours on Core2Duo E8400 with 8GB RAM, makeflags j2 (tuxsavvy).

  • 50 minutes on 6c/12t 3.3GHz (@kubrick).

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 7 8 9 10 .. 16 Next › Last »

frealgagu commented on 2020-12-26 01:49 (UTC)

Bumped up compiling with icu 68.2 thanks @Slenderchat for the provided patch.

slenderchat commented on 2020-12-24 23:07 (UTC) (edited on 2021-02-15 05:09 (UTC) by slenderchat)

It does not build after icu update to version 68, and requires a patch. With this patch, applied after icu59.patch it builds and runs fine:


--- a/Source/WebCore/platform/text/TextCodecICU.cpp     2020-12-25 01:26:48.264432629 +0300
+++ b/Source/WebCore/platform/text/TextCodecICU.cpp     2020-12-25 01:32:51.866605725 +0300
@@ -308,7 +308,7 @@
     m_converterICU = ucnv_open(m_canonicalConverterName, &err;;
     ASSERT(U_SUCCESS(err));
     if (m_converterICU)
-        ucnv_setFallback(m_converterICU, TRUE);
+        ucnv_setFallback(m_converterICU, true);
 }

 int TextCodecICU::decodeToBuffer(UChar* target, UChar* targetLimit, const char*& source, const char* sourceLimit, int32_t* offsets, bool flush, UErrorCode& err)
diff -ru a/Source/WebCore/platform/text/icu/UTextProvider.h b/Source/WebCore/platform/text/icu/UTextProvider.h
--- a/Source/WebCore/platform/text/icu/UTextProvider.h  2020-12-25 01:26:48.261099215 +0300
+++ b/Source/WebCore/platform/text/icu/UTextProvider.h  2020-12-25 01:27:47.339194730 +0300
@@ -81,12 +81,12 @@
             // Ensure chunk offset is well formed if computed offset exceeds int32_t range.
             ASSERT(offset < std::numeric_limits<int32_t>::max());
             text->chunkOffset = offset < std::numeric_limits<int32_t>::max() ? static_cast<int32_t>(offset) : 0;
-            isAccessible = TRUE;
+            isAccessible = true;
             return true;
         }
         if (nativeIndex >= nativeLength && text->chunkNativeLimit == nativeLength) {
             text->chunkOffset = text->chunkLength;
-            isAccessible = FALSE;
+            isAccessible = false;
             return true;
         }
     } else {
@@ -95,12 +95,12 @@
             // Ensure chunk offset is well formed if computed offset exceeds int32_t range.
             ASSERT(offset < std::numeric_limits<int32_t>::max());
             text->chunkOffset = offset < std::numeric_limits<int32_t>::max() ? static_cast<int32_t>(offset) : 0;
-            isAccessible = TRUE;
+            isAccessible = true;
             return true;
         }
         if (nativeIndex <= 0 && !text->chunkNativeStart) {
             text->chunkOffset = 0;
-            isAccessible = FALSE;
+            isAccessible = false;
             return true;
         }
     }
diff -ru a/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp b/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp
--- a/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp  2020-12-25 01:26:48.261099215 +0300
+++ b/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp  2020-12-25 01:28:07.176341944 +0300
@@ -100,23 +100,23 @@
         if (index < uText->chunkNativeLimit && index >= uText->chunkNativeStart) {
             // Already inside the buffer. Set the new offset.
             uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart);
-            return TRUE;
+            return true;
         }
         if (index >= length && uText->chunkNativeLimit == length) {
             // Off the end of the buffer, but we can't get it.
             uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart);
-            return FALSE;
+            return false;
         }
     } else {
         if (index <= uText->chunkNativeLimit && index > uText->chunkNativeStart) {
             // Already inside the buffer. Set the new offset.
             uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart);
-            return TRUE;
+            return true;
         }
         if (!index && !uText->chunkNativeStart) {
             // Already at the beginning; can't go any farther.
             uText->chunkOffset = 0;
-            return FALSE;
+            return false;
         }
     }

@@ -144,7 +144,7 @@

     uText->nativeIndexingLimit = uText->chunkLength;

-    return TRUE;
+    return true;
 }

 static int32_t uTextLatin1Extract(UText* uText, int64_t start, int64_t limit, UChar* dest, int32_t destCapacity, UErrorCode* status)
@@ -336,7 +336,7 @@
 static UBool uTextLatin1ContextAwareAccess(UText* text, int64_t nativeIndex, UBool forward)
 {
     if (!text->context)
-        return FALSE;
+        return false;
     int64_t nativeLength = uTextLatin1ContextAwareNativeLength(text);
     UBool isAccessible;
     if (uTextAccessInChunkOrOutOfRange(text, nativeIndex, nativeLength, forward, isAccessible))
@@ -356,7 +356,7 @@
         ASSERT(newContext == UTextProviderContext::PriorContext);
         textLatin1ContextAwareSwitchToPriorContext(text, nativeIndex, nativeLength, forward);
     }
-    return TRUE;
+    return true;
 }

 static int32_t uTextLatin1ContextAwareExtract(UText*, int64_t, int64_t, UChar*, int32_t, UErrorCode* errorCode)
diff -ru a/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp b/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp
--- a/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp   2020-12-25 01:26:48.261099215 +0300
+++ b/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp   2020-12-25 01:28:29.206876049 +0300
@@ -125,7 +125,7 @@
 static UBool uTextUTF16ContextAwareAccess(UText* text, int64_t nativeIndex, UBool forward)
 {
     if (!text->context)
-        return FALSE;
+        return false;
     int64_t nativeLength = uTextUTF16ContextAwareNativeLength(text);
     UBool isAccessible;
     if (uTextAccessInChunkOrOutOfRange(text, nativeIndex, nativeLength, forward, isAccessible))
@@ -145,7 +145,7 @@
         ASSERT(newContext == UTextProviderContext::PriorContext);
         textUTF16ContextAwareSwitchToPriorContext(text, nativeIndex, nativeLength, forward);
     }
-    return TRUE;
+    return true;
 }

 static int32_t uTextUTF16ContextAwareExtract(UText*, int64_t, int64_t, UChar*, int32_t, UErrorCode* errorCode)

PhotonX commented on 2020-11-27 17:46 (UTC)

Install the base-devel package group (which includes all the packages you mentioned) if you want to build AUR packages.

twitt commented on 2020-11-27 17:44 (UTC)

I had to install bison, flex, automake and autoconf as additional make dependencies (for 3:2.4.11-20).

bidulock commented on 2020-11-21 13:03 (UTC)

The patch suggested by @jhurst works for me too. Please update PKGBUILD.

jhurst commented on 2020-10-06 13:43 (UTC)

Getting this error:

fatal error: CSSGrammar.hpp: No such file or directory

I found a patch for GNUmakefile.in that copies CSSGrammar.h and XPathGrammar.h to CSSGrammar.hpp and XPathGrammar.hpp respectively: https://www.linuxquestions.org/questions/slackware-14/sbo-scripts-not-building-on-current-read-1st-post-pls-4175561999/page195.html#post6160562

--- webkitgtk-2.4.11.orig/GNUmakefile.in    2020-08-28 22:11:51.510864558 +0800
+++ webkitgtk-2.4.11.new/GNUmakefile.in 2020-08-28 22:24:17.657842406 +0800
@@ -82071,6 +82071,7 @@
 $(GENSOURCES_WEBCORE)/XPathGrammar.cpp: $(WebCore)/xml/XPathGrammar.y
    $(AM_V_GEN)
    $(AM_V_at)perl $(WebCore)/css/makegrammar.pl --outputDir $(GENSOURCES_WEBCORE) --bison "$(BISON)" --symbolsPrefix xpathyy $<
+   $(AM_V_at)cp $(GENSOURCES_WEBCORE)/XPathGrammar.h $(GENSOURCES_WEBCORE)/XPathGrammar.hpp

 # MathML tag and attribute names, and element factory
 DerivedSources/WebCore/MathMLElementFactory.h: DerivedSources/WebCore/MathMLElementFactory.cpp
@@ -82129,6 +82130,7 @@
 DerivedSources/WebCore/CSSGrammar.cpp: $(WebCore)/css/CSSGrammar.y.in
    $(AM_V_GEN)
    $(AM_V_at)perl -I $(WebCore)/bindings/scripts $(WebCore)/css/makegrammar.pl --extraDefines "$(feature_defines)" --outputDir $(GENSOURCES_WEBCORE) --bison "$(BISON)" --symbolsPrefix cssyy $<
+   $(AM_V_at)cp $(GENSOURCES_WEBCORE)/CSSGrammar.h $(GENSOURCES_WEBCORE)/CSSGrammar.hpp

 DerivedSources/WebCore/UserAgentStyleSheetsData.cpp: DerivedSources/WebCore/UserAgentStyleSheets.h
 DerivedSources/WebCore/UserAgentStyleSheets.h: $(WebCore)/css/make-css-file-arrays.pl $(WebCore)/bindings/scripts/preprocessor.pm $(USER_AGENT_STYLE_SHEETS)

Applying it after the autoreconf in the PKGBUILD seems to work.

pha-qu commented on 2020-09-09 20:02 (UTC)

Warning!!! Anyone uninitiated should check that a) They need this and b) Can they install the binary version. This pile of c++ foo takes a long time to compile for a 49Mb footprint

slav commented on 2019-11-23 22:40 (UTC)

Someone can drop build webkitgtk 3:2.4.11-18 package please? Thanks, Slav

nenad commented on 2019-11-19 22:18 (UTC)

This package is missing the following dependencies during build time: bison flex

Baltazar72 commented on 2019-11-17 20:00 (UTC)

Thank you @chiwanpark ! You nailed it !

Best Reagards!