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.084136
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 »

Lantorax commented on 2020-12-31 13:24 (UTC) (edited on 2020-12-31 15:26 (UTC) by Lantorax)

I'm having problems building this package. Fails through yay, makepkg, and make:

yay and makepkg -si:

autoreconf: configure.ac: not using Intltool
autoreconf: running: gtkdocize --copy
gtkdocize: GTK_DOC_CHECK not called in ./configure.ac
autoreconf: error: gtkdocize failed with exit status: 1
==> ERROR: A failure occurred in prepare().
    Aborting...

make:

CDPATH="${ZSH_VERSION+.}:" && cd . && aclocal-1.15 -I Source/autotools
/bin/sh: line 1: aclocal-1.15: command not found
make: *** [GNUmakefile:25873: aclocal.m4] Error 127

I have aclocal-1.16.2 installed.

core/automake 1.16.2-3 (base-devel) [installed]
    usr/bin/aclocal

Edit: OK, I have gotten it to successfully compile. I had to install the aur package: automake-1.15

Still would not build correctly with the current PKGBUILD, but running make in the src/webkitgtk-2.4.11/ did work. I had to run 'automake-1.15 --add-missing' after a failed 'make'

It did fail after a few minutes:

./Source/WebCore/bindings/js/JSDOMBinding.h:191:12:   required from ‘void WebCore::cacheWrapper(WebCore::DOMWrapperWorld&, DOMClass*, WrapperClass*) [with DOMClass = JSC::ArrayBuffer; WrapperClass = JSC::JSArrayBuffer]’
./Source/WebCore/bindings/js/JSDOMBinding.h:358:53:   required from here
./Source/WTF/wtf/HashTable.h:774:19: warning: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct WTF::KeyValuePair<void*, JSC::Weak<JSC::JSObject> >’ with no trivial copy-assignment; use value-initialization instead [-Wclass-memaccess]
  774 |             memset(&bucket, 0, sizeof(bucket));
      |             ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./Source/WTF/wtf/HashTable.h:32,
                 from ./Source/WTF/wtf/HashMap.h:25,
                 from ./Source/JavaScriptCore/runtime/JSCJSValue.h:31,
                 from ./Source/JavaScriptCore/bytecode/SpeculatedType.h:32,
                 from ./Source/JavaScriptCore/runtime/IndexingType.h:29,
                 from ./Source/JavaScriptCore/bytecode/ArrayAllocationProfile.h:29,
                 from ./Source/JavaScriptCore/runtime/JSGlobalObject.h:25,
                 from ./Source/WebCore/bindings/js/JSDOMGlobalObject.h:31,
                 from ./Source/WebCore/bindings/js/JSDOMBinding.h:27,
                 from DerivedSources/WebCore/JSSVGZoomEvent.h:26,
                 from DerivedSources/WebCore/JSSVGZoomEvent.cpp:25:
./Source/WTF/wtf/HashTraits.h:169:8: note: ‘struct WTF::KeyValuePair<void*, JSC::Weak<JSC::JSObject> >’ declared here
  169 | struct KeyValuePair {
      |        ^~~~~~~~~~~~
make[1]: Leaving directory '/home/jason/build/webkitgtk/src/webkitgtk-2.4.11'
make: *** [GNUmakefile:25837: all] Error 2

Trying it with 'make -j1' gives the same error:

./Source/WTF/wtf/HashTraits.h:169:8: note: ‘struct WTF::KeyValuePair<int, WTF::OwnPtr<WebCore::GlyphMetricsMap<float>::GlyphMetricsPage> >’ declared here
  169 | struct KeyValuePair {
      |        ^~~~~~~~~~~~
make[1]: *** [GNUmakefile:51072: Source/WebCore/platform/graphics/libPlatform_la-SegmentedFontData.lo] Error 1
make[1]: Leaving directory '/home/jason/build/webkitgtk/src/webkitgtk-2.4.11'
make: *** [GNUmakefile:25837: all] Error 2

slenderchat commented on 2020-12-29 21:15 (UTC)

@ejsav tested in clean chroot, and on different machines, and can't confirm problem. Must be something about your setup. If you can, try to build in clean chroot environment.

ejsav commented on 2020-12-29 16:42 (UTC)

This is failing to build for me.

  CXXLD    Programs/jsc-3
  CCLD     Programs/minidom
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `ucol_setAttribute_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to  `u_toupper_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `udat_close_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `udat_open_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `u_memcasecmp_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `ucol_getAttribute_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `u_strToUpper_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `ucol_getLocaleByType_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `u_strToLower_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `udat_format_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `ucol_strcoll_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `u_charType_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `ucol_open_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `u_tolower_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `u_strFoldCase_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `u_charDirection_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `u_foldCase_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `ucol_close_67'
collect2: error: ld returned 1 exit status
make[1]: *** [GNUmakefile:46284: Programs/minidom] Error 1
make[1]: *** Waiting for unfinished jobs....
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `ucol_setAttribute_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `u_toupper_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `udat_close_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `udat_open_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `u_memcasecmp_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `ucol_getAttribute_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `u_strToUpper_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `ucol_getLocaleByType_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `u_strToLower_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `udat_format_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `ucol_strcoll_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `u_charType_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `ucol_open_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `u_tolower_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `u_strFoldCase_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `u_charDirection_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `u_foldCase_67'
/usr/bin/ld: ./.libs/libjavascriptcoregtk-3.0.so: undefined reference to `ucol_close_67'
collect2: error: ld returned 1 exit status
make[1]: *** [GNUmakefile:46259: Programs/jsc-3] Error 1
make[1]: Leaving directory '/tmp/makepkg/webkitgtk/src/build-gtk'
make: *** [GNUmakefile:30360: all] Error 2
==> ERROR: A failure occurred in build().
    Aborting...

Based on the _67 numbering I'm assuming that this is ICU-related. I am on ICU68 but this also fails if I downgrade to the last 67 version.

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