Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

webkit2gtk: update to 2.40.0. #41698

Merged
merged 7 commits into from Apr 3, 2023
Merged

webkit2gtk: update to 2.40.0. #41698

merged 7 commits into from Apr 3, 2023

Conversation

oreo639
Copy link
Member

@oreo639 oreo639 commented Jan 17, 2023

[ci skip]

Necessary for gnome 44.

Testing the changes

  • I tested the changes in this PR: briefly

@oreo639 oreo639 marked this pull request as draft January 17, 2023 20:13
@oreo639 oreo639 changed the title webkit2gtk: update to 2.39.4. [DRAFT] webkit2gtk: update to 2.39.4. Jan 17, 2023
@oreo639 oreo639 changed the title [DRAFT] webkit2gtk: update to 2.39.4. [NOMERGE] webkit2gtk: update to 2.39.4. Jan 17, 2023
@oreo639 oreo639 changed the title [NOMERGE] webkit2gtk: update to 2.39.4. webkit2gtk: update to 2.39.4. Jan 17, 2023
@oreo639 oreo639 force-pushed the webkit2gtk branch 4 times, most recently from 7c6e6a9 to 92484aa Compare January 17, 2023 20:55
@oreo639 oreo639 changed the title webkit2gtk: update to 2.39.4. webkit2gtk: update to 2.40.0. Mar 22, 2023
@oreo639 oreo639 mentioned this pull request Mar 22, 2023
@oreo639 oreo639 marked this pull request as ready for review March 22, 2023 10:19
@paper42
Copy link
Member

paper42 commented Mar 22, 2023

marking a draft because we need to merge #42916 and #42922 first

@icp1994
Copy link
Contributor

icp1994 commented Mar 24, 2023

If you wait for a bit Komikku might be resolved upstream soon https://gitlab.com/valos/Komikku/-/merge_requests/195

@oreo639
Copy link
Member Author

oreo639 commented Mar 24, 2023

If you wait for a bit Komikku might be resolved upstream soon https://gitlab.com/valos/Komikku/-/merge_requests/195

I'll update it when it gets resolved, but I don't anticipate that getting merged sooon.

Also, this patch seems to break japscan and readcomiconline.

I do not have enough time to solve the patch right now. And, this patch making any server depending on WebkitGTK fail anyway, it might be wiser to just delete both sources in f38, although I do not know the effect it might have on users using the source upgrading to f38.

@oreo639
Copy link
Member Author

oreo639 commented Mar 26, 2023

Alright, it does look like Komikku is working on it now, I'll update it in the next release.

@paper42
Copy link
Member

paper42 commented Mar 30, 2023

Komikku released a version 1.17.0 which includes this commit https://gitlab.com/valos/Komikku/-/merge_requests/208/diffs which adds support for webkitgtk-6.0, the update PR is here: #43124

@oreo639
Copy link
Member Author

oreo639 commented Mar 30, 2023

Thank you.

@oreo639 oreo639 force-pushed the webkit2gtk branch 3 times, most recently from 054552b to cf8b996 Compare April 1, 2023 19:50
@oreo639 oreo639 marked this pull request as ready for review April 1, 2023 20:00
@paper42
Copy link
Member

paper42 commented Apr 2, 2023

Cross compiling to armv6l-musl with -j10 fails for me with:

[70/5186] Building CXX object Source/ThirdParty/ANGLE/CMakeFiles/ANGLE.dir/src/libANGLE/renderer/gl/ContextGL.cpp.o
FAILED: Source/ThirdParty/ANGLE/CMakeFiles/ANGLE.dir/src/libANGLE/renderer/gl/ContextGL.cpp.o 
/usr/bin/ccache /builddir/.xbps-webkit2gtk/wrappers/arm-linux-musleabihf-c++ -DANGLE_ENABLE_ESSL -DANGLE_ENABLE_GLSL -DANGLE_ENABLE_OPENGL -DANGLE_PLATFORM_LINUX -DBUILDING_GTK__=1 -DBUILDING_WEBKIT=1 -DBUILDING_WITH_CMAKE=1 -DBWRAP_EXECUTABLE=\"/usr/bin/bwrap\" -DDBUS_PROXY_EXECUTABLE=\"/usr/bin/xdg-dbus-proxy\" -DEGL_EGL_PROTOTYPES=0 -DEGL_NO_PLATFORM_SPECIFIC_TYPES -DGETTEXT_PACKAGE=\"WebKitGTK-4.1\" -DGL_GLES_PROTOTYPES=0 -DHAVE_CONFIG_H=1 -DJSC_GLIB_API_ENABLED -DLIBANGLE_IMPLEMENTATION -DPAS_BMALLOC=1 -DUSE_SYSTEM_EGL -I/builddir/webkit2gtk-2.40.0/Source/ThirdParty/ANGLE/include -I/builddir/webkit2gtk-2.40.0/Source/ThirdParty/ANGLE/include/KHR -I/builddir/webkit2gtk-2.40.0/Source/ThirdParty/ANGLE/src -I/builddir/webkit2gtk-2.40.0/Source/ThirdParty/ANGLE/src/common/base -I/builddir/webkit2gtk-2.40.0/Source/ThirdParty/ANGLE/src/common/third_party/xxhash -I/builddir/webkit2gtk-2.40.0/Source/ThirdParty/ANGLE/third_party/zlib/google -I/builddir/webkit2gtk-2.40.0/build/Source/ThirdParty/ANGLE/include -fdiagnostics-color=always -Wextra -Wall -pipe -fmax-errors=20 -Wno-odr -Wno-stringop-overread -Wno-stringop-overflow -Wno-nonnull -Wno-array-bounds -Wno-expansion-to-defined -Wno-noexcept-type -Wno-psabi -Wno-misleading-indentation -Wno-maybe-uninitialized -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -Wno-tautological-compare -DNDEBUG -fstack-clash-protection -D_FORTIFY_SOURCE=2 -O2 -march=armv6 -mfpu=vfp -mfloat-abi=hard -DNDEBUG  -I/usr/arm-linux-musleabihf/usr/include -ffile-prefix-map=/builddir/webkit2gtk-2.40.0/build=. -fno-strict-aliasing -fno-exceptions -fno-rtti -fPIC -fvisibility=hidden -w -std=c++20 -MD -MT Source/ThirdParty/ANGLE/CMakeFiles/ANGLE.dir/src/libANGLE/renderer/gl/ContextGL.cpp.o -MF Source/ThirdParty/ANGLE/CMakeFiles/ANGLE.dir/src/libANGLE/renderer/gl/ContextGL.cpp.o.d -o Source/ThirdParty/ANGLE/CMakeFiles/ANGLE.dir/src/libANGLE/renderer/gl/ContextGL.cpp.o -c /builddir/webkit2gtk-2.40.0/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ContextGL.cpp
In file included from ../Source/ThirdParty/ANGLE/src/libANGLE/RefCountObject.h:20,
                 from ../Source/ThirdParty/ANGLE/src/libANGLE/angletypes.h:19,
                 from ../Source/ThirdParty/ANGLE/src/libANGLE/Caps.h:12,
                 from ../Source/ThirdParty/ANGLE/src/libANGLE/GLES1State.h:20,
                 from ../Source/ThirdParty/ANGLE/src/libANGLE/State.h:19,
                 from ../Source/ThirdParty/ANGLE/src/libANGLE/renderer/ContextImpl.h:16,
                 from ../Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ContextGL.h:13,
                 from ../Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ContextGL.cpp:10:
../Source/ThirdParty/ANGLE/src/libANGLE/renderer/serial_utils.h:132:37: error: static assertion failed: Must always be lock free
  132 |     static_assert(decltype(mValue)::is_always_lock_free, "Must always be lock free");
      |

continuing with -j1 seems to make it work, but I am not sure why, so it's possible it would also fail a few minutes in.
there is a bug report upstream about this: https://bugs.webkit.org/show_bug.cgi?id=252670

@oreo639
Copy link
Member Author

oreo639 commented Apr 2, 2023

Thank you for pointing that out.
The value of std::atomic<uint32_t>::is_always_lock_free depends on the value of ATOMIC_LLONG_LOCK_FREE:
https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/atomic#L931

https://en.cppreference.com/w/c/atomic/ATOMIC_LOCK_FREE_consts

With ATOMIC_LLONG_LOCK_FREE = 1 on armv6. (meaning "sometimes lock free" )
https://stackoverflow.com/a/64253858

@nekopsykose
Copy link

nekopsykose commented Apr 2, 2023

that is a fault of the default armv6 arch. in void, it's defined as: https://github.com/void-linux/void-packages/blob/3641d47af71bb988a92d50b016116f91f0455133/srcpkgs/gcc/template#LL203 (which is just 'armv6'):

$ echo | gcc -march=armv6 -dM -E - | grep LLONG
#define __GCC_ATOMIC_LLONG_LOCK_FREE 1

if you pick a newer v6 micro, like armv6zk (which is what the rpi0 is, and what alpine does, for instance):

$ echo | gcc -march=armv6zk -dM -E - | grep LLONG
#define __GCC_ATOMIC_LLONG_LOCK_FREE 2

the tl;dr of this is webkit simply cannot compile for just 'armv6' anymore, or more specifically ANGLE cannot, which is enabled by default in 2.40 (wasn't in 2.38).

i think it is still "allowed" to disable it, so your options are:

  • raise -march on armv6 only, for this. i don't know which have =2 for this, except that zk does, you can find out the most minimal one if you pick this option and it matters to have it lower than zk
  • -DUSE_ANGLE_EGL=OFF to cmake (for armv6 only, of course), with all that implies

@nekopsykose
Copy link

nekopsykose commented Apr 2, 2023

ah, it's not just ANGLE_EGL- i think ENABLE_WEBGL also pulls angle, so you have to disable multiple things here for that one

personally, i'd probably raise the march, but i don't know what devices you support on armv6 (or if even just bare armv6 was intentional in the first place as the default arch target, because that is very old-specced and i haven't heard of anyone use that before)

@oreo639
Copy link
Member Author

oreo639 commented Apr 2, 2023

raise -march on armv6 only, for this. i don't know which have =2 for this, except that zk does, you can find out the most minimal one if you pick this option and it matters to have it lower than zk

The most minimal is armv6k:
https://developer.arm.com/documentation/ddi0301/h/summary-of-arm1136jf-s-and-arm1176jzf-s-processor-differences/summary-of-differences/armv6k-extensions-support

@nekopsykose
Copy link

yeah, that looks like it works

@oreo639
Copy link
Member Author

oreo639 commented Apr 2, 2023

Discussed it on IRC, disabling ANGLE and WEBGL for now on armv6 as the number of people needing it on armv6 is probably limited.

libwebkit2gtk50 -> libwebkitgtk60
@paper42 paper42 merged commit 8dbd04b into void-linux:master Apr 3, 2023
2 checks passed
@oreo639 oreo639 deleted the webkit2gtk branch April 3, 2023 19:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants