diff --git a/baselibs.conf b/baselibs.conf index 71ec90e..50f826f 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -1,4 +1,2 @@ libjavascriptcoregtk-4_0-18 -libjavascriptcoregtk-4_1-0 libwebkit2gtk-4_0-37 -libwebkit2gtk-4_1-0 diff --git a/webkit2gtk3-271108.patch b/webkit2gtk3-271108.patch new file mode 100644 index 0000000..0942809 --- /dev/null +++ b/webkit2gtk3-271108.patch @@ -0,0 +1,18 @@ +diff --git a/Source/WebCore/platform/Timer.cpp b/Source/WebCore/platform/Timer.cpp +index 4f7c0f5c39ca..0f3734cca247 100644 +--- a/Source/WebCore/platform/Timer.cpp ++++ b/Source/WebCore/platform/Timer.cpp +@@ -263,7 +263,11 @@ struct SameSizeAsTimer { + + WeakPtr timerAlignment; + double times[2]; +- void* pointers[3]; ++ void* pointers[2]; ++#if CPU(ADDRESS32) ++ uint8_t bitfields; ++#endif ++ void* pointer; + }; + + static_assert(sizeof(Timer) == sizeof(SameSizeAsTimer), "Timer should stay small"); + diff --git a/webkit2gtk3-create-destroy-egl-image.patch b/webkit2gtk3-create-destroy-egl-image.patch deleted file mode 100644 index 7b1c588..0000000 --- a/webkit2gtk3-create-destroy-egl-image.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 855a2ca13f6a85b0aacb0576fbbc9a926e646b2e Mon Sep 17 00:00:00 2001 -From: Carlos Garcia Campos -Date: Thu, 31 Aug 2023 09:26:26 -0700 -Subject: [PATCH] [GTK][WPE] Do not use epoxy - PlatformDisplay::create|destroyEGLImage - https://bugs.webkit.org/show_bug.cgi?id=260968 - -Reviewed by Michael Catanzaro. - -libepoxy needs a current context to work, but creating EGL images -doesn't need any context, it's display API. - -* Source/WebCore/platform/graphics/PlatformDisplay.cpp: -(WebCore::PlatformDisplay::createEGLImage const): -(WebCore::PlatformDisplay::destroyEGLImage const): - -Canonical link: https://commits.webkit.org/267503@main ---- - .../platform/graphics/PlatformDisplay.cpp | 16 ---------------- - 1 file changed, 16 deletions(-) - -diff -urp webkitgtk-2.42.1.orig/Source/WebCore/platform/graphics/PlatformDisplay.cpp webkitgtk-2.42.1/Source/WebCore/platform/graphics/PlatformDisplay.cpp ---- webkitgtk-2.42.1.orig/Source/WebCore/platform/graphics/PlatformDisplay.cpp 2023-09-19 03:27:49.807693000 -0500 -+++ webkitgtk-2.42.1/Source/WebCore/platform/graphics/PlatformDisplay.cpp 2023-10-23 13:09:55.996812760 -0500 -@@ -374,14 +374,10 @@ void PlatformDisplay::terminateEGLDispla - EGLImage PlatformDisplay::createEGLImage(EGLContext context, EGLenum target, EGLClientBuffer clientBuffer, const Vector& attributes) const - { - if (eglCheckVersion(1, 5)) { --#if USE(LIBEPOXY) -- return eglCreateImage(m_eglDisplay, context, target, clientBuffer, attributes.isEmpty() ? nullptr : attributes.data()); --#else - static PFNEGLCREATEIMAGEPROC s_eglCreateImage = reinterpret_cast(eglGetProcAddress("eglCreateImage")); - if (s_eglCreateImage) - return s_eglCreateImage(m_eglDisplay, context, target, clientBuffer, attributes.isEmpty() ? nullptr : attributes.data()); - return EGL_NO_IMAGE; --#endif - } - - if (!m_eglExtensions.KHR_image_base) -@@ -390,40 +386,28 @@ EGLImage PlatformDisplay::createEGLImage - Vector intAttributes = attributes.map>([] (EGLAttrib value) { - return value; - }); --#if USE(LIBEPOXY) -- return eglCreateImageKHR(m_eglDisplay, context, target, clientBuffer, intAttributes.isEmpty() ? nullptr : intAttributes.data()); --#else - static PFNEGLCREATEIMAGEKHRPROC s_eglCreateImageKHR = reinterpret_cast(eglGetProcAddress("eglCreateImageKHR")); - if (s_eglCreateImageKHR) - return s_eglCreateImageKHR(m_eglDisplay, context, target, clientBuffer, intAttributes.isEmpty() ? nullptr : intAttributes.data()); - return EGL_NO_IMAGE_KHR; --#endif - } - - bool PlatformDisplay::destroyEGLImage(EGLImage image) const - { - if (eglCheckVersion(1, 5)) { --#if USE(LIBEPOXY) -- return eglDestroyImage(m_eglDisplay, image); --#else - static PFNEGLDESTROYIMAGEPROC s_eglDestroyImage = reinterpret_cast(eglGetProcAddress("eglDestroyImage")); - if (s_eglDestroyImage) - return s_eglDestroyImage(m_eglDisplay, image); - return false; --#endif - } - - if (!m_eglExtensions.KHR_image_base) - return false; - --#if USE(LIBEPOXY) -- return eglDestroyImageKHR(m_eglDisplay, image); --#else - static PFNEGLDESTROYIMAGEKHRPROC s_eglDestroyImageKHR = reinterpret_cast(eglGetProcAddress("eglDestroyImageKHR")); - if (s_eglDestroyImageKHR) - return s_eglDestroyImageKHR(m_eglDisplay, image); - return false; --#endif - } - - #if USE(GBM) diff --git a/webkit2gtk3-disable-dmabuf-nvidia.patch b/webkit2gtk3-disable-dmabuf-nvidia.patch index 7d8ff15..68d3d12 100644 --- a/webkit2gtk3-disable-dmabuf-nvidia.patch +++ b/webkit2gtk3-disable-dmabuf-nvidia.patch @@ -3,25 +3,27 @@ Subject: Disable DMABuf renderer for NVIDIA proprietary drivers Bug: https://bugs.webkit.org/show_bug.cgi?id=262607 Bug-Debian: https://bugs.debian.org/1039720 Origin: https://github.com/WebKit/WebKit/pull/18614 -Index: webkitgtk/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp +Index: webkitgtk-2.44.0/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp =================================================================== ---- webkitgtk.orig/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp -+++ webkitgtk/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp -@@ -36,11 +36,13 @@ +--- webkitgtk-2.44.0.orig/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp ++++ webkitgtk-2.44.0/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp +@@ -37,6 +37,7 @@ #include #include #include +#include + #include + #include #include - #include +@@ -45,6 +46,7 @@ #if USE(GBM) - #include + #include +#include #include - static constexpr uint64_t s_dmabufInvalidModifier = uint64_t(WebCore::DMABufFormat::Modifier::Invalid); - #else -@@ -53,6 +55,29 @@ static constexpr uint64_t s_dmabufInvali + + static constexpr uint64_t s_dmabufInvalidModifier = DRM_FORMAT_MOD_INVALID; +@@ -58,6 +60,29 @@ static constexpr uint64_t s_dmabufInvali namespace WebKit { @@ -51,7 +53,7 @@ Index: webkitgtk/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp OptionSet AcceleratedBackingStoreDMABuf::rendererBufferMode() { static OptionSet mode; -@@ -68,6 +93,9 @@ OptionSet Acce +@@ -73,6 +98,9 @@ OptionSet Acce return; } @@ -60,4 +62,4 @@ Index: webkitgtk/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp + mode.add(DMABufRendererBufferMode::SharedMemory); - const auto& eglExtensions = WebCore::PlatformDisplay::sharedDisplay().eglExtensions(); + const char* forceSHM = getenv("WEBKIT_DMABUF_RENDERER_FORCE_SHM"); diff --git a/webkit2gtk3.changes b/webkit2gtk3.changes index 8c48171..130833c 100644 --- a/webkit2gtk3.changes +++ b/webkit2gtk3.changes @@ -1,3 +1,71 @@ +------------------------------------------------------------------- +Mon Mar 18 12:15:24 UTC 2024 - Dominique Leuenberger + +- Add webkit2gtk3-271108.patch: Fix build on 32bit arches + (https://bugs.webkit.org/show_bug.cgi?id=271108). + +------------------------------------------------------------------- +Sat Mar 16 09:36:58 UTC 2024 - Dominique Leuenberger + +- Update to version 2.44.0: + + Make the DOM accessibility tree reachable from UI process with + GTK4. + + Removed the X11 and WPE renderers in favor of DMA-BUF. + + Improved vblank synchronization when rendering. + + Removed key event reinjection in GTK4 to make keyboard + shortcuts work in web sites. + + Fix gamepads detection by correctly handling focused window in + GTK4. +- Rebase webkit2gtk3-disable-dmabuf-nvidia.patch. + +------------------------------------------------------------------- +Tue Mar 5 16:20:56 UTC 2024 - Dominique Leuenberger + +- baselibs.conf: Do not build libjavascriptcoregtk-4_1-0-32bit and + libwebkit2gtk-4_1-0-32bit: they are not used, and in fact not + built in Factory (build excluded). + +------------------------------------------------------------------- +Thu Feb 29 13:15:27 UTC 2024 - Dominique Leuenberger + +- Update to version 2.43.4: + + Remove key event reinjection in GTK4 to make keyboard shortcuts + work in web sites. + + Use the new GTK API to create a GdkTexture from a DMA-BUF + buffer when available. + + Fix rendering when GTK is using the vulkan renderer. + + Fix gamepads detection by correctly handling focused window in + GTK4. + + Fix rendering after history navigation. + + Write bwrapinfo.json to disk for xdg-desktop-portal. + + Fixed several memory leaks in media backend. + + Fix several crashes and rendering issues. +- Changes from version 2.43.3: + + Show vblank monitor information in webkit://gpu. + + Fallback to timer based vblank monitor if drmWaitVBlank fails. + + Fix several memory leaks in media backend. + + Fix several crashes and rendering issues. +- Changes from version 2.43.2? + + Remove the X11 and WPE renderers. + + Release unused buffers when the view is hidden. + + Fix flickering while playing videos with DMA-BUF sink. + + Do not special case the "sans" font family name. + + Fix webkit_web_context_allow_tls_certificate_for_host() for + IPv6 URIs produced by SoupURI. + + Fix several crashes and rendering issues. +- Changes from version WebKitGTK 2.43.1? + + Improve vblank synchronization when rendering. + + Improve DMA-BUF buffers handling for video frames. + + Use the buffer format preferred by the driver in DMA-BUF + renderer. + + Do not block the compositing thread waiting for rendering + threads. + + Improve performance when scaling images in a canvas. + + Fix several crashes and rendering issues. + + Updated translations. +- Drop webkit2gtk3-create-destroy-egl-image.patch: fixed upstream. +- Add libbacktrace-devel BuildRequires (for gtk4 flavor). + ------------------------------------------------------------------- Fri Feb 16 15:33:11 UTC 2024 - Michael Gorse diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index 5d26a1e..8952543 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -70,12 +70,13 @@ ExclusiveArch: do-not-build %define _usesoup2 0 %define _wk2sover6api -6_0-4 %define _soverlj6api -6_0-1 +%define _with_backtrace 1 %endif Name: webkit2%{_gtknamesuffix} ### FIXME ### Drop the disabling of LTO on next release/versionbump %define _lto_cflags %{nil} -Version: 2.42.5 +Version: 2.44.0 Release: 0 Summary: Library for rendering web content, GTK+ Port License: BSD-3-Clause AND LGPL-2.0-or-later @@ -88,8 +89,8 @@ Source99: webkit2gtk3.keyring # PATCH-FEATURE-OPENSUSE reproducibility.patch -- Make build reproducible Patch0: reproducibility.patch -# PATCH-FIX-UPSTREAM webkit2gtk3-create-destroy-egl-image.patch boo#1216483 mgorse@suse.com -- fix "No provider of EglDestroyImage found". -Patch1: webkit2gtk3-create-destroy-egl-image.patch +# PATCH-FIX-UPSTREAM webkit2gtk3-271108.patch +Patch1: webkit2gtk3-271108.patch # PATCH-FIX-UPSTREAM webkit2gtk3-disable-dmabuf-nvidia.patch boo#1216778 mgorse@suse.com -- disable the DMABuf renderer for NVIDIA proprietary drivers. Patch2: webkit2gtk3-disable-dmabuf-nvidia.patch # PATCH-FIX-UPSTREAM webkit2gtk3-llint-build-fix.patch mgorse@suse.com -- fix the build for non-x86 architectures. @@ -105,6 +106,9 @@ BuildRequires: bubblewrap BuildRequires: cmake BuildRequires: enchant-devel BuildRequires: flex +%if 0%{?_with_backtrace} +BuildRequires: libbacktrace-devel +%endif %if %usegcc11 BuildRequires: gcc11-c++ %else @@ -151,7 +155,7 @@ BuildRequires: pkgconfig(gstreamer-video-1.0) BuildRequires: pkgconfig(gtk+-3.0) >= 3.22.0 %endif %if "%{flavor}" == "gtk4" -BuildRequires: pkgconfig(gtk4) >= 3.98.50 +BuildRequires: pkgconfig(gtk4) >= 4.6.0 BuildRequires: pkgconfig(xcomposite) %endif BuildRequires: pkgconfig(gudev-1.0) @@ -438,8 +442,6 @@ Group: Development/Tools/Other A small test browswer from webkit, useful for testing features. - - # Expand %%lang_package to Obsoletes its older-name counterpart %package -n WebKitGTK-%{_apiver}-lang Summary: Translations for package %{name} @@ -481,6 +483,7 @@ export PYTHON=%{_bindir}/python3 -GNinja \ -DCMAKE_BUILD_TYPE=Release \ -DENABLE_DOCUMENTATION=OFF \ + -DUSE_LIBBACKTRACE=%[ %{defined _with_backtrace} ? "ON" : "OFF" ] \ %if %usegcc11 -DCMAKE_C_COMPILER=gcc-11 \ -DCMAKE_CXX_COMPILER=g++-11 \ @@ -492,6 +495,7 @@ export PYTHON=%{_bindir}/python3 -DENABLE_WEBDRIVER=ON \ %else -DLIBEXEC_INSTALL_DIR=%{_libexecdir}/libwebkit2gtk%{_wk2sover} \ + -DUSE_GTK4=OFF \ -DENABLE_WEBDRIVER=OFF \ %endif -DUSE_AVIF=ON \ @@ -506,6 +510,7 @@ export PYTHON=%{_bindir}/python3 %ifarch aarch64 -DENABLE_JIT=OFF \ -DENABLE_C_LOOP=ON \ + -DENABLE_WEBASSEMBLY=OFF \ -DENABLE_SAMPLING_PROFILER=OFF \ -DUSE_SYSTEM_MALLOC=ON \ %else diff --git a/webkitgtk-2.42.5.tar.xz b/webkitgtk-2.42.5.tar.xz deleted file mode 100644 index 287d7df..0000000 --- a/webkitgtk-2.42.5.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b64278c1f20b8cfdbfb5ff573c37d871aba74a1db26d9b39f74e8953fe61e749 -size 34651836 diff --git a/webkitgtk-2.42.5.tar.xz.asc b/webkitgtk-2.42.5.tar.xz.asc deleted file mode 100644 index da5885c..0000000 --- a/webkitgtk-2.42.5.tar.xz.asc +++ /dev/null @@ -1,6 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iF0EABECAB0WIQTX/PYc+aLeqzHYG9Pz0yLQ7EWCwwUCZcCvFAAKCRDz0yLQ7EWC -w1FoAJ9+JY5XpvsElI4nSgXhLk3k6O7L5QCeNx1Hj5iFlSDQY17oYfa4FyMEI9I= -=NxQN ------END PGP SIGNATURE----- diff --git a/webkitgtk-2.44.0.tar.xz b/webkitgtk-2.44.0.tar.xz new file mode 100644 index 0000000..1cb8742 --- /dev/null +++ b/webkitgtk-2.44.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c66530e41ba59b1edba4ee89ef20b2188e273bed0497e95084729e3cfbe30c87 +size 37046712 diff --git a/webkitgtk-2.44.0.tar.xz.asc b/webkitgtk-2.44.0.tar.xz.asc new file mode 100644 index 0000000..0836865 --- /dev/null +++ b/webkitgtk-2.44.0.tar.xz.asc @@ -0,0 +1,6 @@ +-----BEGIN PGP SIGNATURE----- + +iF0EABECAB0WIQTX/PYc+aLeqzHYG9Pz0yLQ7EWCwwUCZfVbrAAKCRDz0yLQ7EWC +w8XkAJ9wH/0dQk9fHx1s5X4W9VIJxfX0dwCeN3dJ03QwNCk6CmZPgxfC6zd7ZA0= +=EFJC +-----END PGP SIGNATURE-----