I don't need the webkitgtk anymore, but in case the pastebins go away I did put all the additional in a repo and submitted a PR on the repo the maintainer links to, https://github.com/frealgagu/archlinux.webkitgtk this one has the new files: https://github.com/chaseleif/archlinux.webkitgtk FYI: it looks like this also fixes the issues webkitgtk2 AUR. I don't remember if I needed to change the patches (line numbers, etc.) but I also built the other one.
Search Criteria
Package Details: webkitgtk 3:2.4.11-28
Package Actions
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.39 |
First Submitted: | 2017-06-30 07:40 (UTC) |
Last Updated: | 2024-11-16 02:41 (UTC) |
Dependencies (21)
- enchant
- geoclue2 (geoclue_fake-gitAUR, geoclue)
- gst-plugins-base-libs (gst-plugins-base-libs-gitAUR)
- gtk3 (gtk3-no_deadkeys_underlineAUR, gtk3-classicAUR, gtk3-classic-xfceAUR, gtk3-patched-filechooser-icon-viewAUR)
- harfbuzz-icu (harfbuzz-icu-gitAUR)
- libgl (libglvnd-gitAUR, amdgpu-pro-oglp-legacyAUR, amdgpu-pro-oglpAUR, nvidia-340xx-utilsAUR, libglvnd)
- libsecret
- libsoup
- libwebp (libwebp-gitAUR)
- libxslt (libxslt-gitAUR)
- libxt
- glib2-devel (make)
- gobject-introspection (make)
- gperf (gperf-gitAUR) (make)
- gtk2 (gtk2-maemoAUR, gtk2-patched-filechooser-icon-viewAUR) (make)
- mesa (mesa-minimal-gitAUR, mesa-gitAUR, mesa-wsl2-gitAUR, amdonly-gaming-mesa-gitAUR, mesa-amd-bc250AUR, mesa-amber) (make)
- ruby (make)
- gst-libav (gst-libav-gitAUR) (optional) – nonfree media decoding
- gst-plugins-base (gst-plugins-base-gitAUR) (optional) – free media decoding
- gst-plugins-good (gst-plugins-good-gitAUR) (optional) – media decoding
- Show 1 more dependencies...
Required by (9)
- anylogic-ple (optional)
- anylogic-professional (optional)
- anylogic-university (optional)
- erika-git
- gnome-web-photo
- haskell-gtk2
- magicassistant-gtk
- remmina-plugin-webkit
- uzbl-core-next-git
Sources (16)
- bison3.7.patch
- compilerflags.patch
- enchant-2.x.patch
- glib-2.68.0.patch
- grammar.patch
- gtk-doc.patch
- https://webkitgtk.org/releases/webkitgtk-2.4.11.tar.xz
- icu59.patch
- icu68.patch
- pkgconfig-enchant-2.patch
- rubyasm.patch
- volatile.patch
- webkitextern.patch
- webkitgtk-2.4.9-abs.patch
- wtfstd17.patch
- xmlconst.patch
chaseleif commented on 2024-11-14 20:06 (UTC)
jnvandermeer commented on 2024-11-01 06:14 (UTC)
Hello all, just to say that patching the PKGBUILD and then making the .patch files as outlined by chaseleif does work. I also had to get glib2-devel.
Could the official PKGBUILD file be changed to reflect these patches?
chaseleif commented on 2024-08-20 13:53 (UTC) (edited on 2024-08-21 02:57 (UTC) by chaseleif)
I built the latest update in a current chroot ($ makechrootpkg -c -r $CHROOT
).
https://wiki.archlinux.org/title/DeveloperWiki:Building_in_a_clean_chroot
Note:
-
(actually, I think I may have needed to to add
glib2-devel
in themakedepends()
originally formakechrootpkg
, but below steps are from after the initialmakechrootpkg
) -
I found out I actually need
webkitgtk2
, so I guess I'm going to do that one now.
I received the same error as @semcore (from parser.rb
) and saw:
https://github.com/WebKit/WebKit/commit/c7d19a492d97f9282a546831beb918e03315f6ef
I applied the changes.
Next error:
/usr/include/unicode/localpointer.h:561:26: error: parameter declared 'auto'
561 | template <typename Type, auto closeFunction>
| ^~~~
They talk about this here (not for the same file/line, but the same issue):
https://bugs.webkit.org/show_bug.cgi?id=171010
and they link to a patch for that file/line, this was only meant to be a temporary workaround though.
They intended to switch from c++11
to c++14
and use auto
.
I figured it would be easier to use c++14
rather than find and patch all of the affected auto
s.
An -std
in the WTF make flags would be overshadowed by global flags, so I went ahead and set std=c++14
for the entire build.
Next error: (call of overloaded ... is ambiguous)
The WTF team was providing implementations for functions provided by c++14
in preparation for the std change, so I commented out the function.
In their stdlibextras.h
, I needed to comment out 2 other functions.
Next error: (auto
is not permitted in this context)
It looks like this is supported in c++17
, so I changed -std
to c++17
.
Also to reduce prints: -Wno
for implicit fallthrough, a c++20
warning, and deprecated warnings.
I removed the D_FORTIFY_SOURCE
, as this is added to FLAGS
during configure
by default and was causing "already set" message spam.
Next error: DerivedSources/webkit/webkitmarshal.cpp
.
This file has extern "C" {
on the first line, and includes a header which a series of other includes led to:
/usr/include/c++/14.2.1/type_traits:69:3: error: template with C linkage
69 | template<typename _Tp>
webkitmarshal.cpp
is created in ./webkitgtk-2.4.11/Source/WebKit/gtk/GNUmakefile.am
.
I removed the echo which puts extern "C" {
at the top, and added an inplace sed to put extern "C" {
on the 3rd line below the include statement.
Next error is what @bartus posted, xml pointers changed const
-ness:
https://bugs.webkit.org/show_bug.cgi?id=265128
I added const
to the type.
Next error:
DerivedSources/WebCore/CSSGrammar.cpp:160:10: fatal error: CSSGrammar.hpp: No such file or directory
160 | #include "CSSGrammar.hpp"
I found this commit which addressed an issue relating to Bison 3.7+: https://github.com/qtwebkit/qtwebkit/commit/d92b11fea65364fefa700249bd3340e0cd4c5b31 I applied the changes.
Patches:
-
rubyasm.patch, fix
=~
token error http://0x0.st/XJtj.patch -
wtfstd17.patch, commented functions now conflicting with
std=c++17
http://0x0.st/XJte.patch -
compilerflags.patch, change to
std=c++17
, remove extraFORTIFY_SOURCE
, add several-Wno
flags http://0x0.st/XJt2.patch -
webkitextern.patch, fix placement of
extern "C" {
below#include
http://0x0.st/XJt_.patch -
xmlconst.patch, make
xmlError
pointersconst
for libxml2:2.12+ http://0x0.st/XJtL.patch -
bison3.7.patch, change header usage in
DerivedSources
for Bison3.7+ http://0x0.st/XJt9.7.patch
PKGBUILD diff: http://0x0.st/XJtp.diff
frealgagu commented on 2024-08-18 15:52 (UTC)
@semcore not a silly question at all.
webkitGTK started usign API1, but it started having multiple security concerns, API2 born and tried to replace API1, however there some applications that relies on API1 still, so that's why I've tried to maintain it. If possible and for security it's better to have installed just webkitgtk-6.0 which uses API2 with GTK4. But it depends on the application you are using it.
Look at this post: https://stackoverflow.com/questions/19692818/webkitgtk-gtk2-gtk3
semcore commented on 2024-08-17 18:54 (UTC) (edited on 2024-08-17 19:16 (UTC) by semcore)
I apologize if this is a basic / silly question, or if I missed the documentation. But, I searched online and read the posts here, and don't see an answer. And I dont understand the FAQ answer.
On my system, I have the aur version of webkitgtk installed, but not extra/webkitgtk-6.0 installed.
Should I be using the aur version, or extra version? Or both?
I can't even get the aur version to update. I havent been able to for a long time.
/home/user/.cache/yay/webkitgtk/src/webkitgtk-2.4.11/Source/JavaScriptCore/offlineasm/parser.rb:506:in `block in parseSequence': undefined method `=~' for #<Annotation:0x000078b20e918ff0 @codeOrigin=#<CodeOrigin:0x000078b20e919040 @fileName=#<Pathname:/home/user/.cache/yay/webkitgtk/src/webkitgtk-2.4.11/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm>, @lineNumber=402>, @type=:local, @string="Move frame up \"t1\" slots"> (NoMethodError)
from /home/user/.cache/yay/webkitgtk/src/webkitgtk-2.4.11/Source/JavaScriptCore/offlineasm/parser.rb:505:in `loop'
from /home/user/.cache/yay/webkitgtk/src/webkitgtk-2.4.11/Source/JavaScriptCore/offlineasm/parser.rb:505:in `parseSequence'
from /home/user/.cache/yay/webkitgtk/src/webkitgtk-2.4.11/Source/JavaScriptCore/offlineasm/parser.rb:573:in `block in parseSequence'
from /home/user/.cache/yay/webkitgtk/src/webkitgtk-2.4.11/Source/JavaScriptCore/offlineasm/parser.rb:505:in `loop'
from /home/user/.cache/yay/webkitgtk/src/webkitgtk-2.4.11/Source/JavaScriptCore/offlineasm/parser.rb:505:in `parseSequence'
from /home/user/.cache/yay/webkitgtk/src/webkitgtk-2.4.11/Source/JavaScriptCore/offlineasm/parser.rb:703:in `parseData'
from /home/user/.cache/yay/webkitgtk/src/webkitgtk-2.4.11/Source/JavaScriptCore/offlineasm/parser.rb:707:in `parse'
from /home/user/.cache/yay/webkitgtk/src/webkitgtk-2.4.11/Source/JavaScriptCore/offlineasm/parser.rb:692:in `block in parseSequence'
from /home/user/.cache/yay/webkitgtk/src/webkitgtk-2.4.11/Source/JavaScriptCore/offlineasm/parser.rb:505:in `loop'
from /home/user/.cache/yay/webkitgtk/src/webkitgtk-2.4.11/Source/JavaScriptCore/offlineasm/parser.rb:505:in `parseSequence'
from /home/user/.cache/yay/webkitgtk/src/webkitgtk-2.4.11/Source/JavaScriptCore/offlineasm/parser.rb:544:in `block in parseSequence'
from /home/user/.cache/yay/webkitgtk/src/webkitgtk-2.4.11/Source/JavaScriptCore/offlineasm/parser.rb:505:in `loop'
from /home/user/.cache/yay/webkitgtk/src/webkitgtk-2.4.11/Source/JavaScriptCore/offlineasm/parser.rb:505:in `parseSequence'
from /home/user/.cache/yay/webkitgtk/src/webkitgtk-2.4.11/Source/JavaScriptCore/offlineasm/parser.rb:703:in `parseData'
from /home/user/.cache/yay/webkitgtk/src/webkitgtk-2.4.11/Source/JavaScriptCore/offlineasm/parser.rb:707:in `parse'
from /home/user/.cache/yay/webkitgtk/src/webkitgtk-2.4.11/Source/JavaScriptCore/offlineasm/generate_offset_extractor.rb:62:in `<main>'
make: *** [GNUmakefile:95616: DerivedSources/JavaScriptCore/LLIntDesiredOffsets.h] Error 1
make: *** Waiting for unfinished jobs....
/home/user/.cache/yay/webkitgtk/src/webkitgtk-2.4.11/Source/WebCore/xml/XPathGrammar.y: warning: fix-its can be applied. Rerun with option '--update'. [-Wother]
DerivedSources/WebCore/CSSGrammar.y: warning: fix-its can be applied. Rerun with option '--update'. [-Wother]
==> ERROR: A failure occurred in build().
Aborting...
-> error making: webkitgtk-exit status 4
webkitgtk from aur deps:
pacman -Qi webkitgtk
warning: config file /etc/pacman.conf, line 123: directive 'ParallelDownloads' in section 'dtos-core-repo' not recognized.
Name : webkitgtk
Version : 3:2.4.11-17
Description : Legacy Web content engine for GTK+ 3
Architecture : x86_64
URL : https://webkitgtk.org/
Licenses : custom
Groups : None
Provides : webkitgtk3=2.4.11 libwebkit3=2.4.11
Depends On : enchant>=2.2 geoclue2 gst-plugins-base-libs gtk3 harfbuzz-icu libgl libsecret libwebp libxslt libxt
Optional Deps : gst-libav: nonfree media decoding
gst-plugins-base: free media decoding [installed]
gst-plugins-good: media decoding [installed]
gtk2: Netscape plugin support [installed]
Required By : None
Optional For : None
Conflicts With : webkitgtk3 libwebkit3
Replaces : webkitgtk3 libwebkit3
Installed Size : 44.17 MiB
Packager : Unknown Packager
Build Date : Thu 25 Apr 2019 11:04:31 AM CDT
Install Date : Thu 25 Apr 2019 11:22:41 AM CDT
Install Reason : Explicitly installed
Install Script : Yes
Validated By : None
Thank you
FabioLolix commented on 2024-03-14 11:41 (UTC)
mmoya commented on 2024-03-14 11:20 (UTC) (edited on 2024-03-14 11:23 (UTC) by mmoya)
Can you add autoconf
, bison
and flex
to build depends? A similar request was made on 2023-06 https://aur.archlinux.org/packages/webkitgtk#comment-918984.
Thanks
==> Starting prepare()...
patching file Source/WebCore/platform/gtk/GtkClickCounter.cpp
patching file Source/WebCore/platform/gtk/LocalizedStringsGtk.cpp
patching file Source/WebCore/platform/text/enchant/TextCheckerEnchant.cpp
patching file Source/JavaScriptCore/API/JSStringRef.h
patching file Source/WebKit2/Shared/API/c/WKString.h
patching file Source/autotools/FindDependencies.m4
patching file Source/WebCore/platform/text/TextCodecICU.cpp
patching file Source/WebCore/platform/text/icu/UTextProvider.h
patching file Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp
patching file Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp
patching file configure.ac
/home/mmoya/.cache/paru/clone/webkitgtk/PKGBUILD: line 67: autoreconf: command not found
==> ERROR: A failure occurred in prepare().
bartus commented on 2024-01-24 15:53 (UTC) (edited on 2024-01-24 15:56 (UTC) by bartus)
Won't build against libxml2:2.12
/build/webkitgtk/src/webkitgtk-2.4.11/Source/WebCore/xml/XSLTProcessorLibxslt.cpp:142:34: error: invalid conversion from 'void (*)(void*, xmlError*)' {aka 'void (*)(void*, _xmlError*)'} to 'xmlStructuredErrorFunc' {aka 'void (*)(void*, co⮎ nst _xmlError*)'} [-fpermissive]
142 | xmlSetStructuredErrorFunc(console, XSLTProcessor::parseErrorFunc);
| ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| void (*)(void*, xmlError*) {aka void (*)(void*, _xmlError*)}
In file included from /usr/include/libxml2/libxml/valid.h:15,
from /usr/include/libxml2/libxml/parser.h:19,
from /build/webkitgtk/src/webkitgtk-2.4.11/Source/WebCore/xml/XSLStyleSheet.h:31,
from /build/webkitgtk/src/webkitgtk-2.4.11/Source/WebCore/xml/XSLTProcessor.h:29,
from /build/webkitgtk/src/webkitgtk-2.4.11/Source/WebCore/xml/XSLTProcessorLibxslt.cpp:27:
/usr/include/libxml2/libxml/xmlerror.h:898:57: note: initializing argument 2 of 'void xmlSetStructuredErrorFunc(void*, xmlStructuredErrorFunc)'
898 | xmlStructuredErrorFunc handler);
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
FabioLolix commented on 2023-07-01 12:31 (UTC) (edited on 2023-07-08 10:22 (UTC) by FabioLolix)
Also need option !lto
to build with devtools
Build time:
real 16m2,048s
user 199m8,105s
sys 20m9,741s
with Ryzen 9 3900X 12c/12t -j23
FabioLolix commented on 2023-07-01 11:57 (UTC)
@basbjo installing the base-devel package is an AUR prerequisite
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
useMAKEFLAGS="-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).