lol

webkitgtk: 2.40.5 → 2.42.1

https://github.com/WebKit/WebKit/commits/webkitgtk-2.42.1/Source/cmake/OptionsGTK.cmake
https://webkitgtk.org/security/WSA-2023-0009.html

JPEG XL is enabled by default.

Remove support for OpenGL API in the web process;
Remove GLX support:

https://github.com/WebKit/WebKit/commit/cfe917fec45bf72c371087ece034feee8454f1b4
https://github.com/WebKit/WebKit/commit/320560f9e53ddcd53954059bd005e0c75eb91abf

Other than ENABLE_GLES2 option can be dropped, it is unclear to me what can actually
be dropped so keeping everything around. I assume we keep libGL mainly for egl.

But we don't really need to worry about https://bugzilla.redhat.com/show_bug.cgi?id=2240428 and
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050777 here, we are applying libgl-path.patch to
libepoxy which should load the libGLESv2 thing in a hardcoded path.

Tested yelp, newsflash and the bundled minibrowser and does not experience crash so far.

Dropped pcre as mentioned in https://bugzilla.redhat.com/show_bug.cgi?id=2212686.

+5 -8
+4 -7
pkgs/development/libraries/webkitgtk/default.nix
··· 27 27 , libxkbcommon 28 28 , libavif 29 29 , libepoxy 30 + , libjxl 30 31 , at-spi2-core 31 32 , libxml2 32 33 , libsoup ··· 34 35 , libxslt 35 36 , harfbuzz 36 37 , libpthreadstubs 37 - , pcre 38 38 , nettle 39 39 , libtasn1 40 40 , p11-kit ··· 51 51 , openjpeg 52 52 , geoclue2 53 53 , sqlite 54 - , enableGLES ? true 55 54 , gst-plugins-base 56 55 , gst-plugins-bad 57 56 , woff2 ··· 71 70 72 71 stdenv.mkDerivation (finalAttrs: { 73 72 pname = "webkitgtk"; 74 - version = "2.40.5"; 73 + version = "2.42.1"; 75 74 name = "${finalAttrs.pname}-${finalAttrs.version}+abi=${if lib.versionAtLeast gtk3.version "4.0" then "6.0" else "4.${if lib.versions.major libsoup.version == "2" then "0" else "1"}"}"; 76 75 77 76 outputs = [ "out" "dev" "devdoc" ]; ··· 82 81 83 82 src = fetchurl { 84 83 url = "https://webkitgtk.org/releases/webkitgtk-${finalAttrs.version}.tar.xz"; 85 - hash = "sha256-feBRomNmhiHZGmGl6xw3cdGnzskABD1K/vBsMmwWA38="; 84 + hash = "sha256-b0H6yZidPuUcCMSN4dQ5ze3ey8dX40thgJh9mbFtJJk="; 86 85 }; 87 86 88 87 patches = lib.optionals stdenv.isLinux [ ··· 132 131 enchant2 133 132 libavif 134 133 libepoxy 134 + libjxl 135 135 gnutls 136 136 gst-plugins-bad 137 137 gst-plugins-base ··· 153 153 nettle 154 154 openjpeg 155 155 p11-kit 156 - pcre 157 156 sqlite 158 157 woff2 159 158 ] ++ (with xorg; [ ··· 219 218 "-DUSE_GTK4=ON" 220 219 ] ++ lib.optionals (!systemdSupport) [ 221 220 "-DENABLE_JOURNALD_LOG=OFF" 222 - ] ++ lib.optionals (stdenv.isLinux && enableGLES) [ 223 - "-DENABLE_GLES2=ON" 224 221 ]; 225 222 226 223 postPatch = ''
+1 -1
pkgs/development/libraries/webkitgtk/fdo-backend-path.patch
··· 3 3 @@ -84,7 +84,7 @@ void WebProcessPool::platformInitializeWebProcess(const WebProcessProxy& process 4 4 5 5 #if PLATFORM(WAYLAND) 6 - if (WebCore::PlatformDisplay::sharedDisplay().type() == WebCore::PlatformDisplay::Type::Wayland) { 6 + if (WebCore::PlatformDisplay::sharedDisplay().type() == WebCore::PlatformDisplay::Type::Wayland && parameters.dmaBufRendererBufferMode.isEmpty()) { 7 7 - wpe_loader_init("libWPEBackend-fdo-1.0.so.1"); 8 8 + wpe_loader_init("@wpebackend_fdo@/lib/libWPEBackend-fdo-1.0.so.1"); 9 9 if (AcceleratedBackingStoreWayland::checkRequirements()) {