From ea7959e3705ba84e62bbedebd0010ffd74389754 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Wed, 10 Jun 2026 10:05:56 -0500 Subject: [PATCH] Update to 2.52.4 Resolves: RHEL-181173 Resolves: RHEL-181186 Resolves: RHEL-181194 Resolves: RHEL-181211 Resolves: RHEL-181222 Resolves: RHEL-181227 Resolves: RHEL-181243 Resolves: RHEL-181256 Resolves: RHEL-181262 Resolves: RHEL-181270 Resolves: RHEL-181281 Resolves: RHEL-181290 Resolves: RHEL-181302 Resolves: RHEL-181313 Resolves: RHEL-181332 Resolves: RHEL-181342 --- aarch64-build.patch | 329 -------------------------------------------- build.patch | 46 +++++++ glib-2.56.patch | 12 +- libsoup2.patch | 36 +++-- sources | 4 +- webkit2gtk3.spec | 15 +- 6 files changed, 81 insertions(+), 361 deletions(-) delete mode 100644 aarch64-build.patch create mode 100644 build.patch diff --git a/aarch64-build.patch b/aarch64-build.patch deleted file mode 100644 index d246a68..0000000 --- a/aarch64-build.patch +++ /dev/null @@ -1,329 +0,0 @@ -From a98fdf70489a743d3ee98f91758e043ffee9f9ca Mon Sep 17 00:00:00 2001 -From: Shu-yu Guo -Date: Fri, 17 Apr 2026 16:10:11 -0500 -Subject: [PATCH] Cherry-pick 7cda001308f2. - https://bugs.webkit.org/show_bug.cgi?id=306638 - -[JSC] Fix !ENABLE(JIT) build -https://bugs.webkit.org/show_bug.cgi?id=306638 -rdar://169822205 - -Reviewed by NOBODY (OOPS!). - -* Source/JavaScriptCore/jit/ExecutableAllocator.h: -(JSC::performJITMemcpy): -* Source/JavaScriptCore/llint/InPlaceInterpreter.asm: -* Source/JavaScriptCore/llint/LLIntData.cpp: -(JSC::LLInt::initialize): -* Source/JavaScriptCore/wasm/WasmCallee.cpp: -* Source/WTF/wtf/PlatformEnable.h: ---- - .../JavaScriptCore/jit/ExecutableAllocator.h | 8 ++ - .../llint/InPlaceInterpreter.asm | 8 +- - Source/JavaScriptCore/llint/LLIntData.cpp | 81 +++++++++++++++---- - Source/JavaScriptCore/wasm/WasmCallee.cpp | 18 ++++- - Source/WTF/wtf/PlatformEnable.h | 2 +- - 5 files changed, 93 insertions(+), 24 deletions(-) - -diff --git a/Source/JavaScriptCore/jit/ExecutableAllocator.h b/Source/JavaScriptCore/jit/ExecutableAllocator.h -index 3e8efce28cfe..cb81579c8703 100644 ---- a/Source/JavaScriptCore/jit/ExecutableAllocator.h -+++ b/Source/JavaScriptCore/jit/ExecutableAllocator.h -@@ -390,6 +390,14 @@ WTF_ALLOW_UNSAFE_BUFFER_USAGE_BEGIN - WTF_ALLOW_UNSAFE_BUFFER_USAGE_END - } - -+template -+inline void* performJITMemcpy(void *dst, const void *src, size_t n) -+{ -+WTF_ALLOW_UNSAFE_BUFFER_USAGE_BEGIN -+ return memcpy(dst, src, n); -+WTF_ALLOW_UNSAFE_BUFFER_USAGE_END -+} -+ - inline bool isJITPC(void*) { return false; } - #endif // ENABLE(JIT) - -diff --git a/Source/JavaScriptCore/llint/InPlaceInterpreter.asm b/Source/JavaScriptCore/llint/InPlaceInterpreter.asm -index 64db9cdb21df..dac1faa5260a 100644 ---- a/Source/JavaScriptCore/llint/InPlaceInterpreter.asm -+++ b/Source/JavaScriptCore/llint/InPlaceInterpreter.asm -@@ -420,7 +420,7 @@ end - - # OSR - macro ipintPrologueOSR(increment) --if JIT -+if WEBASSEMBLY_BBQJIT - loadp UnboxedWasmCalleeStackSlot[cfr], ws0 - baddis increment, Wasm::IPIntCallee::m_tierUpCounter + Wasm::IPIntTierUpCounter::m_counter[ws0], .continue - -@@ -457,11 +457,11 @@ end - if ARMv7 - break # FIXME: ipint support. - end # ARMv7 --end # JIT -+end # WEBASSEMBLY_BBQJIT - end - - macro ipintLoopOSR(increment) --if JIT and not ARMv7 -+if WEBASSEMBLY_BBQJIT and not ARMv7 - validateOpcodeConfig(ws0) - loadp UnboxedWasmCalleeStackSlot[cfr], ws0 - baddis increment, Wasm::IPIntCallee::m_tierUpCounter + Wasm::IPIntTierUpCounter::m_counter[ws0], .continue -@@ -492,7 +492,7 @@ end - end - - macro ipintEpilogueOSR(increment) --if JIT and not ARMv7 -+if WEBASSEMBLY_BBQJIT and not ARMv7 - loadp UnboxedWasmCalleeStackSlot[cfr], ws0 - baddis increment, Wasm::IPIntCallee::m_tierUpCounter + Wasm::IPIntTierUpCounter::m_counter[ws0], .continue - -diff --git a/Source/JavaScriptCore/llint/LLIntData.cpp b/Source/JavaScriptCore/llint/LLIntData.cpp -index 5d7c88f72571..2509dc4132f3 100644 ---- a/Source/JavaScriptCore/llint/LLIntData.cpp -+++ b/Source/JavaScriptCore/llint/LLIntData.cpp -@@ -199,8 +199,28 @@ void initialize() - #if CPU(ARM64E) - - #if ENABLE(JIT_CAGE) -- if (Options::useJITCage()) -+ if (Options::useJITCage()) { - g_jscConfig.llint.gateMap[static_cast(Gate::jitCagePtr)] = jitCagePtrThunk().code().taggedPtr(); -+#if ENABLE(WEBASSEMBLY) -+ // JSPI JITCage gates -+ g_jscConfig.llint.gateMap[static_cast(Gate::jspiResignReturnPCs)] = jspiResignReturnPCsThunk().code().taggedPtr(); -+ g_jscConfig.llint.gateMap[static_cast(Gate::jspiExecuteSliceEntry)] = jspiExecuteSliceEntryThunk().code().taggedPtr(); -+ // jspiExitImplantedSlice is stored untagged because it's used as a return address -+ // (not as a jump target) and will be signed by JITCage with the stack pointer diversifier. -+ g_jscConfig.llint.gateMap[static_cast(Gate::jspiExitImplantedSlice)] = jspiExitImplantedSliceThunk().code().untaggedPtr(); -+#endif // ENABLE(WEBASSEMBLY) -+ } -+#endif -+ -+#if ENABLE(JIT) -+#define INITIALIZE_JS_GATE_JIT_PATH(name, tag) \ -+ if (Options::useJIT()) { \ -+ codeRef8.construct(createJSGateThunk(retagCodePtr(LLInt::getCodeFunctionPtr(name##_return_location)), tag, #name)); \ -+ codeRef16.construct(createJSGateThunk(retagCodePtr(LLInt::getWide16CodeFunctionPtr(name##_return_location)), tag, #name "_wide16")); \ -+ codeRef32.construct(createJSGateThunk(retagCodePtr(LLInt::getWide32CodeFunctionPtr(name##_return_location)), tag, #name "_wide32")); \ -+ } else -+#else -+#define INITIALIZE_JS_GATE_JIT_PATH(name, tag) - #endif - - #define INITIALIZE_JS_GATE(name, tag) \ -@@ -208,11 +228,7 @@ void initialize() - static LazyNeverDestroyed> codeRef8; \ - static LazyNeverDestroyed> codeRef16; \ - static LazyNeverDestroyed> codeRef32; \ -- if (Options::useJIT()) { \ -- codeRef8.construct(createJSGateThunk(retagCodePtr(LLInt::getCodeFunctionPtr(name##_return_location)), tag, #name)); \ -- codeRef16.construct(createJSGateThunk(retagCodePtr(LLInt::getWide16CodeFunctionPtr(name##_return_location)), tag, #name "_wide16")); \ -- codeRef32.construct(createJSGateThunk(retagCodePtr(LLInt::getWide32CodeFunctionPtr(name##_return_location)), tag, #name "_wide32")); \ -- } else { \ -+ INITIALIZE_JS_GATE_JIT_PATH(name, tag) { \ - codeRef8.construct(LLInt::getCodeRef(js_trampoline_##name)); \ - codeRef16.construct(LLInt::getWide16CodeRef(js_trampoline_##name)); \ - codeRef32.construct(LLInt::getWide32CodeRef(js_trampoline_##name)); \ -@@ -226,16 +242,23 @@ void initialize() - - #if ENABLE(WEBASSEMBLY) - -+#if ENABLE(JIT) -+#define INITIALIZE_WASM_GATE_JIT_PATH(name, tag) \ -+ if (Options::useJIT()) { \ -+ codeRef8.construct(createWasmGateThunk(retagCodePtr(LLInt::getCodeFunctionPtr(name##_return_location)), tag, #name)); \ -+ codeRef16.construct(createWasmGateThunk(retagCodePtr(LLInt::getWide16CodeFunctionPtr(name##_return_location)), tag, #name "_wide16")); \ -+ codeRef32.construct(createWasmGateThunk(retagCodePtr(LLInt::getWide32CodeFunctionPtr(name##_return_location)), tag, #name "_wide32")); \ -+ } else -+#else -+#define INITIALIZE_WASM_GATE_JIT_PATH(name, tag) -+#endif -+ - #define INITIALIZE_WASM_GATE(name, tag) \ - do { \ - static LazyNeverDestroyed> codeRef8; \ - static LazyNeverDestroyed> codeRef16; \ - static LazyNeverDestroyed> codeRef32; \ -- if (Options::useJIT()) { \ -- codeRef8.construct(createWasmGateThunk(retagCodePtr(LLInt::getCodeFunctionPtr(name##_return_location)), tag, #name)); \ -- codeRef16.construct(createWasmGateThunk(retagCodePtr(LLInt::getWide16CodeFunctionPtr(name##_return_location)), tag, #name "_wide16")); \ -- codeRef32.construct(createWasmGateThunk(retagCodePtr(LLInt::getWide32CodeFunctionPtr(name##_return_location)), tag, #name "_wide32")); \ -- } else { \ -+ INITIALIZE_WASM_GATE_JIT_PATH(name, tag) { \ - codeRef8.construct(LLInt::getCodeRef(wasm_trampoline_##name)); \ - codeRef16.construct(LLInt::getWide16CodeRef(wasm_trampoline_##name)); \ - codeRef32.construct(LLInt::getWide32CodeRef(wasm_trampoline_##name)); \ -@@ -253,10 +276,12 @@ void initialize() - // This is key to entering the interpreter. - { - static LazyNeverDestroyed> codeRef; -+#if ENABLE(JIT) - if (Options::useJIT()) { - auto gateCodeRef = createJSGateThunk(retagCodePtr(&vmEntryToJavaScriptGateAfter), JSEntryPtrTag, "vmEntryToJavaScript"); - codeRef.construct(gateCodeRef.retagged()); - } else -+#endif - codeRef.construct(MacroAssemblerCodeRef::createSelfManagedCodeRef(CodePtr::fromTaggedPtr(retagCodePtr(&vmEntryToJavaScriptTrampoline)))); - g_jscConfig.llint.gateMap[static_cast(Gate::vmEntryToJavaScript)] = codeRef.get().code().taggedPtr(); - } -@@ -268,79 +293,103 @@ void initialize() - - { - static LazyNeverDestroyed> codeRef; -+#if ENABLE(JIT) - if (Options::useJIT()) - codeRef.construct(createTailCallGate(JSEntryPtrTag, true)); - else -+#endif - codeRef.construct(MacroAssemblerCodeRef::createSelfManagedCodeRef(CodePtr::fromTaggedPtr(retagCodePtr(&tailCallJSEntryTrampoline)))); - g_jscConfig.llint.gateMap[static_cast(Gate::tailCallJSEntryPtrTag)]= codeRef.get().code().taggedPtr(); - } - { - static LazyNeverDestroyed> codeRef; -+#if ENABLE(JIT) - if (Options::useJIT()) - codeRef.construct(createTailCallGate(JSEntryPtrTag, true)); - else -+#endif - codeRef.construct(MacroAssemblerCodeRef::createSelfManagedCodeRef(CodePtr::fromTaggedPtr(retagCodePtr(&tailCallJSEntrySlowPathTrampoline)))); - g_jscConfig.llint.gateMap[static_cast(Gate::tailCallJSEntrySlowPathPtrTag)] = codeRef.get().code().taggedPtr(); - } - { - static LazyNeverDestroyed> codeRef; -+#if ENABLE(JIT) - if (Options::useJIT()) - codeRef.construct(createTailCallGate(JSEntryPtrTag, false)); - else -+#endif - codeRef.construct(MacroAssemblerCodeRef::createSelfManagedCodeRef(CodePtr::fromTaggedPtr(retagCodePtr(&tailCallWithoutUntagJSEntryTrampoline)))); - g_jscConfig.llint.gateMap[static_cast(Gate::tailCallWithoutUntagJSEntryPtrTag)]= codeRef.get().code().taggedPtr(); - } - { - static LazyNeverDestroyed> codeRef; -+#if ENABLE(JIT) - if (Options::useJIT()) - codeRef.construct(createWasmTailCallGate(WasmEntryPtrTag)); - else -+#endif - codeRef.construct(MacroAssemblerCodeRef::createSelfManagedCodeRef(CodePtr::fromTaggedPtr(retagCodePtr(&wasmTailCallTrampoline)))); - g_jscConfig.llint.gateMap[static_cast(Gate::wasmTailCallWasmEntryPtrTag)]= codeRef.get().code().taggedPtr(); - } - { - static LazyNeverDestroyed> codeRef; -+#if ENABLE(JIT) - if (Options::useJIT()) - codeRef.construct(createWasmTailCallGate(WasmEntryPtrTag)); - else -+#endif - codeRef.construct(MacroAssemblerCodeRef::createSelfManagedCodeRef(CodePtr::fromTaggedPtr(retagCodePtr(&wasmTailCallTrampoline)))); - g_jscConfig.llint.gateMap[static_cast(Gate::wasmIPIntTailCallWasmEntryPtrTag)]= codeRef.get().code().taggedPtr(); - } - { - static LazyNeverDestroyed> codeRef; -+#if ENABLE(JIT) - if (Options::useJIT()) - codeRef.construct(exceptionHandlerGateThunk()); - else -+#endif - codeRef.construct(MacroAssemblerCodeRef::createSelfManagedCodeRef(CodePtr::fromTaggedPtr(retagCodePtr(&exceptionHandlerTrampoline)))); - g_jscConfig.llint.gateMap[static_cast(Gate::exceptionHandler)] = codeRef.get().code().taggedPtr(); - } - { - static LazyNeverDestroyed> codeRef; -+#if ENABLE(JIT) - if (Options::useJIT()) - codeRef.construct(returnFromLLIntGateThunk()); - else -+#endif - codeRef.construct(MacroAssemblerCodeRef::createSelfManagedCodeRef(CodePtr::fromTaggedPtr(retagCodePtr(&returnFromLLIntTrampoline)))); - g_jscConfig.llint.gateMap[static_cast(Gate::returnFromLLInt)] = codeRef.get().code().taggedPtr(); - } - -+#if ENABLE(JIT) - if (Options::useJIT()) { - g_jscConfig.llint.gateMap[static_cast(Gate::loopOSREntry)] = loopOSREntryGateThunk().code().taggedPtr(); - g_jscConfig.llint.gateMap[static_cast(Gate::entryOSREntry)] = entryOSREntryGateThunk().code().taggedPtr(); - g_jscConfig.llint.gateMap[static_cast(Gate::wasmOSREntry)] = wasmOSREntryGateThunk().code().taggedPtr(); -- } else { -+ } else -+#endif -+ { - g_jscConfig.llint.gateMap[static_cast(Gate::loopOSREntry)] = LLInt::getCodeRef(loop_osr_entry_gate).code().taggedPtr(); - g_jscConfig.llint.gateMap[static_cast(Gate::entryOSREntry)] = nullptr; - g_jscConfig.llint.gateMap[static_cast(Gate::wasmOSREntry)] = nullptr; - } - -+#if ENABLE(JIT) -+#define INITIALIZE_TAG_AND_UNTAG_THUNKS_JIT_PATH(name) \ -+ if (Options::useJIT()) { \ -+ tagCodeRef.construct(tagGateThunk(retagCodePtr(name##TagGateAfter))); \ -+ untagCodeRef.construct(untagGateThunk(retagCodePtr(name##UntagGateAfter))); \ -+ } else -+#else -+#define INITIALIZE_TAG_AND_UNTAG_THUNKS_JIT_PATH(name) -+#endif -+ - #define INITIALIZE_TAG_AND_UNTAG_THUNKS(name) \ - do { \ - static LazyNeverDestroyed> tagCodeRef; \ - static LazyNeverDestroyed> untagCodeRef; \ -- if (Options::useJIT()) { \ -- tagCodeRef.construct(tagGateThunk(retagCodePtr(name##TagGateAfter))); \ -- untagCodeRef.construct(untagGateThunk(retagCodePtr(name##UntagGateAfter))); \ -- } else { \ -+ INITIALIZE_TAG_AND_UNTAG_THUNKS_JIT_PATH(name) { \ - tagCodeRef.construct(LLInt::getCodeRef(js_trampoline_##name##_tag)); \ - untagCodeRef.construct(LLInt::getCodeRef(js_trampoline_##name##_untag)); \ - } \ -diff --git a/Source/JavaScriptCore/wasm/WasmCallee.cpp b/Source/JavaScriptCore/wasm/WasmCallee.cpp -index 94a845ab47e4..b689f00143ab 100644 ---- a/Source/JavaScriptCore/wasm/WasmCallee.cpp -+++ b/Source/JavaScriptCore/wasm/WasmCallee.cpp -@@ -55,13 +55,25 @@ WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(Callee); - WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(JITCallee); - WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(JSToWasmCallee); - WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(WasmToJSCallee); -+WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(IPIntCallee); -+WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(WasmBuiltinCallee); -+ -+#if ENABLE(JIT) - WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(JSToWasmICCallee); -+#endif -+ -+#if ENABLE(WEBASSEMBLY_BBQJIT) || ENABLE(WEBASSEMBLY_OMGJIT) - WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(OptimizingJITCallee); -+#endif -+ -+#if ENABLE(WEBASSEMBLY_BBQJIT) -+WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(BBQCallee); -+#endif -+ -+#if ENABLE(WEBASSEMBLY_OMGJIT) - WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(OMGCallee); - WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(OMGOSREntryCallee); --WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(BBQCallee); --WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(IPIntCallee); --WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(WasmBuiltinCallee); -+#endif - - Callee::Callee(Wasm::CompilationMode compilationMode) - : NativeCallee(NativeCallee::Category::Wasm, ImplementationVisibility::Private) -diff --git a/Source/WTF/wtf/PlatformEnable.h b/Source/WTF/wtf/PlatformEnable.h -index 9c20eb45de48..1561e5ecc85a 100644 ---- a/Source/WTF/wtf/PlatformEnable.h -+++ b/Source/WTF/wtf/PlatformEnable.h -@@ -1006,7 +1006,7 @@ - #define ENABLE_JIT_OPERATION_DISASSEMBLY 1 - #endif - --#if CPU(ARM64E) -+#if CPU(ARM64E) && ENABLE(JIT) - #define ENABLE_JIT_SIGN_ASSEMBLER_BUFFER 1 - #endif - --- -2.53.0 - diff --git a/build.patch b/build.patch new file mode 100644 index 0000000..df7b660 --- /dev/null +++ b/build.patch @@ -0,0 +1,46 @@ +From 5de06e39b421b2db74d30eb0ea76f8b754f8546b Mon Sep 17 00:00:00 2001 +From: Alberto Garcia +Date: Tue, 2 Jun 2026 07:24:38 -0700 +Subject: [PATCH] REGRESSION(313606@main): Fails to build with system malloc + https://bugs.webkit.org/show_bug.cgi?id=316083 + +Reviewed by Fujii Hironori. + +Don't add bmalloc_CopyHeaders to LLIntOffsetsExtractor_DEPENDENCIES if +USE_SYSTEM_MALLOC is on. + +* Source/JavaScriptCore/CMakeLists.txt: + +Canonical link: https://commits.webkit.org/314364@main +--- + Source/JavaScriptCore/CMakeLists.txt | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/Source/JavaScriptCore/CMakeLists.txt b/Source/JavaScriptCore/CMakeLists.txt +index e65f1d4237d9..2de9aa7792e8 100644 +--- a/Source/JavaScriptCore/CMakeLists.txt ++++ b/Source/JavaScriptCore/CMakeLists.txt +@@ -427,8 +427,10 @@ set(LLIntSettingsExtractor_DEPENDENCIES + JavaScriptCore_CopyHeaders + JavaScriptCore_CopyPrivateHeaders + WTF_CopyHeaders +- bmalloc_CopyHeaders + ) ++if (NOT USE_SYSTEM_MALLOC) ++ list(APPEND LLIntSettingsExtractor_DEPENDENCIES bmalloc_CopyHeaders) ++endif () + WEBKIT_EXECUTABLE(LLIntSettingsExtractor) + + # LLIntSettingsExtractor target needs to have a direct or indirect +@@ -454,8 +456,10 @@ set(LLIntOffsetsExtractor_DEPENDENCIES + JavaScriptCore_CopyHeaders + JavaScriptCore_CopyPrivateHeaders + WTF_CopyHeaders +- bmalloc_CopyHeaders + ) ++if (NOT USE_SYSTEM_MALLOC) ++ list(APPEND LLIntOffsetsExtractor_DEPENDENCIES bmalloc_CopyHeaders) ++endif () + WEBKIT_EXECUTABLE(LLIntOffsetsExtractor) + + # The build system will execute asm.rb every time LLIntOffsetsExtractor's mtime is newer than diff --git a/glib-2.56.patch b/glib-2.56.patch index 76625d6..222e606 100644 --- a/glib-2.56.patch +++ b/glib-2.56.patch @@ -1,4 +1,4 @@ -From faa96c8ff6fa906beaa5daf8e36bc1f865a9cf66 Mon Sep 17 00:00:00 2001 +From 214fc050c44b5e57a748de8cb6f158d831209dce Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 4 Apr 2025 13:58:05 -0500 Subject: [PATCH] Build against GLib 2.56 @@ -388,11 +388,11 @@ index 6112a107f99a..b569c48de5ba 100644 issuer = certificate.get(); i++; diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake -index a5ebd3e3d879..ce1791f7a470 100644 +index 94fc72774189..9c699e416486 100644 --- a/Source/cmake/OptionsGTK.cmake +++ b/Source/cmake/OptionsGTK.cmake -@@ -8,7 +8,7 @@ SET_PROJECT_VERSION(2 52 3) - set(USER_AGENT_BRANDING "" CACHE STRING "Branding to add to user agent string") +@@ -11,7 +11,7 @@ set(ENABLE_UNSAFE_BUFFER_USAGE_WARNING ON) + list(APPEND WEBKIT_UNSAFE_BUFFER_WARNING_FLAGS -Wno-unsafe-buffer-usage-in-format-attr-call) # Update Source/WTF/wtf/Platform.h to match required GLib versions. -find_package(GLib 2.70.0 REQUIRED COMPONENTS GioUnix Thread Module) @@ -400,7 +400,7 @@ index a5ebd3e3d879..ce1791f7a470 100644 find_package(Cairo 1.16.0 REQUIRED) find_package(LibGcrypt 1.7.0 REQUIRED) find_package(Soup3 3.0.0 REQUIRED) -@@ -258,6 +258,11 @@ if (ENABLED_COMPILER_SANITIZERS) +@@ -261,6 +261,11 @@ if (ENABLED_COMPILER_SANITIZERS) set(ENABLE_DOCUMENTATION OFF) endif () @@ -452,5 +452,5 @@ index d3fbb968ee46..4f49ad82f9fd 100644 } -- -2.53.0 +2.54.0 diff --git a/libsoup2.patch b/libsoup2.patch index ff51895..c9466f1 100644 --- a/libsoup2.patch +++ b/libsoup2.patch @@ -1,4 +1,4 @@ -From 6b251bc34ceb8a76c1a3ca5671c5228f1dcf745b Mon Sep 17 00:00:00 2001 +From 22d68ee5b56f424318a3bec5c750814b610af79d Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Mon, 6 Apr 2026 13:29:22 -0500 Subject: [PATCH 1/2] Revert "[CMake] Use imported targets in the libsoup @@ -317,10 +317,10 @@ index f981707b11dc..6a5b4d3bda61 100644 ${WEBKIT_DIR}/WPEPlatform ${WPEPlatform_DERIVED_SOURCES_DIR} -- -2.53.0 +2.54.0 -From 467479cc8d7eb8754e50e89acbc46f34d03f25ec Mon Sep 17 00:00:00 2001 +From a5fd87a2b59147b0d847e2f391f95108a9a9441e Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Mon, 6 Apr 2026 13:26:24 -0500 Subject: [PATCH 2/2] Revert "[GTK] Remove support for building against @@ -354,7 +354,7 @@ This reverts commit 6153cafaf3bd0db47a50f088e752e73a39d40921. .../glib/RemoteInspectorHTTPServer.cpp | 13 + .../gtk/webkitgtk-web-process-extension.pc.in | 2 +- Source/WebKit/gtk/webkitgtk.pc.in | 2 +- - Source/cmake/OptionsGTK.cmake | 35 ++- + Source/cmake/OptionsGTK.cmake | 31 ++- Source/cmake/WebKitFeatures.cmake | 1 + .../Tests/WebKitGLib/TestAuthentication.cpp | 45 +++ .../Tests/WebKitGLib/TestBackForwardList.cpp | 5 + @@ -375,7 +375,7 @@ This reverts commit 6153cafaf3bd0db47a50f088e752e73a39d40921. .../Tests/WebKitGtk/TestContextMenu.cpp | 9 + .../glib/WebKitGLib/WebKitTestServer.cpp | 6 + .../glib/WebKitGLib/WebKitTestServer.h | 4 + - 47 files changed, 1053 insertions(+), 17 deletions(-) + 47 files changed, 1051 insertions(+), 15 deletions(-) create mode 100644 Source/WebCore/platform/network/soup/SoupVersioning.h diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h @@ -2281,10 +2281,10 @@ index db0fb001f327..8d7c3e9d086d 100644 Libs: -L${libdir} -lwebkit@WEBKITGTK_API_INFIX@gtk-@WEBKITGTK_API_VERSION@ Cflags: -I${includedir}/webkitgtk-@WEBKITGTK_API_VERSION@ diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake -index 6d5f17debcc7..a856d1ffd945 100644 +index 6609382b3bf6..a2a58f359276 100644 --- a/Source/cmake/OptionsGTK.cmake +++ b/Source/cmake/OptionsGTK.cmake -@@ -11,7 +11,6 @@ set(USER_AGENT_BRANDING "" CACHE STRING "Branding to add to user agent string") +@@ -14,7 +14,6 @@ list(APPEND WEBKIT_UNSAFE_BUFFER_WARNING_FLAGS -Wno-unsafe-buffer-usage-in-forma find_package(GLib 2.56.0 REQUIRED COMPONENTS GioUnix Thread Module) find_package(Cairo 1.14.0 REQUIRED) find_package(LibGcrypt 1.7.0 REQUIRED) @@ -2292,7 +2292,7 @@ index 6d5f17debcc7..a856d1ffd945 100644 find_package(Tasn1 REQUIRED) find_package(HarfBuzz 1.7.5 REQUIRED COMPONENTS ICU) find_package(ICU 70.1 REQUIRED COMPONENTS data i18n uc) -@@ -58,6 +57,7 @@ WEBKIT_OPTION_DEFINE(USE_LIBDRM "Whether to enable usage of libdrm." PUBLIC ON) +@@ -61,6 +60,7 @@ WEBKIT_OPTION_DEFINE(USE_LIBDRM "Whether to enable usage of libdrm." PUBLIC ON) WEBKIT_OPTION_DEFINE(USE_LIBHYPHEN "Whether to enable the default automatic hyphenation implementation." PUBLIC ON) WEBKIT_OPTION_DEFINE(USE_LIBSECRET "Whether to enable the persistent credential storage using libsecret." PUBLIC ON) WEBKIT_OPTION_DEFINE(USE_SKIA_OPENTYPE_SVG "Whether to use the Skia built-in support for OpenType SVG fonts." PUBLIC ON) @@ -2300,7 +2300,7 @@ index 6d5f17debcc7..a856d1ffd945 100644 WEBKIT_OPTION_DEFINE(USE_SYSTEM_SYSPROF_CAPTURE "Whether to use a system-provided libsysprof-capture" PUBLIC ON) WEBKIT_OPTION_DEFINE(ENABLE_JSC_RESTRICTED_OPTIONS_BY_DEFAULT "Whether to enable dangerous development options in JSC by default." PRIVATE OFF) -@@ -65,6 +65,8 @@ WEBKIT_OPTION_DEPEND(ENABLE_DOCUMENTATION ENABLE_INTROSPECTION) +@@ -68,6 +68,8 @@ WEBKIT_OPTION_DEPEND(ENABLE_DOCUMENTATION ENABLE_INTROSPECTION) WEBKIT_OPTION_DEPEND(USE_GBM USE_LIBDRM) WEBKIT_OPTION_DEPEND(USE_SKIA_OPENTYPE_SVG USE_SKIA) @@ -2309,7 +2309,7 @@ index 6d5f17debcc7..a856d1ffd945 100644 # Private options specific to the GTK port. Changing these options is # completely unsupported. They are intended for use only by WebKit developers. WEBKIT_OPTION_DEFINE(USE_SPIEL "Whether to enable usage of LibSpiel for speech synthesis." PRIVATE OFF) -@@ -181,10 +183,32 @@ if (ENABLE_WAYLAND_TARGET AND NOT ${GTK_SUPPORTS_WAYLAND}) +@@ -184,10 +186,32 @@ if (ENABLE_WAYLAND_TARGET AND NOT ${GTK_SUPPORTS_WAYLAND}) set(ENABLE_WAYLAND_TARGET OFF) endif () @@ -2342,22 +2342,18 @@ index 6d5f17debcc7..a856d1ffd945 100644 else () set(WEBKITGTK_API_INFIX "2") set(WEBKITGTK_API_VERSION "4.1") -@@ -201,9 +225,12 @@ find_package(GLIB ${GLIB_MINIMUM_VERSION} REQUIRED COMPONENTS gio gio-unix gobje +@@ -197,7 +221,10 @@ endif () EXPOSE_STRING_VARIABLE_TO_BUILD(WEBKITGTK_API_INFIX) EXPOSE_STRING_VARIABLE_TO_BUILD(WEBKITGTK_API_VERSION) -if (WEBKITGTK_API_VERSION VERSION_EQUAL "4.1") -- CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(WEBKIT 21 7 21) -- CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(JAVASCRIPTCORE 10 11 10) +if (WEBKITGTK_API_VERSION VERSION_EQUAL "4.0") + CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(WEBKIT 112 0 75) + CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(JAVASCRIPTCORE 47 0 29) +elseif (WEBKITGTK_API_VERSION VERSION_EQUAL "4.1") -+ CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(WEBKIT 20 0 20) -+ CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(JAVASCRIPTCORE 10 0 10) + CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(WEBKIT 21 8 21) + CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(JAVASCRIPTCORE 10 12 10) elseif (WEBKITGTK_API_VERSION VERSION_EQUAL "6.0") - CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(WEBKIT 20 7 16) - CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(JAVASCRIPTCORE 8 11 7) diff --git a/Source/cmake/WebKitFeatures.cmake b/Source/cmake/WebKitFeatures.cmake index d4046bf679b2..821eed4b9eaf 100644 --- a/Source/cmake/WebKitFeatures.cmake @@ -2999,7 +2995,7 @@ index b60b425a4c03..699acbe7fabb 100644 #endif diff --git a/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp b/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp -index bfb6dd1c95fa..3acc7a129c21 100644 +index 73a0cf635932..d2c2fda5f8c2 100644 --- a/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp +++ b/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp @@ -21,6 +21,7 @@ @@ -3010,7 +3006,7 @@ index bfb6dd1c95fa..3acc7a129c21 100644 #include #include #include -@@ -2246,7 +2247,11 @@ static void testWebViewLoadAlternateHTMLFromPageWithCSP(WebViewTest* test, gcons +@@ -2250,7 +2251,11 @@ static void testWebViewLoadAlternateHTMLFromPageWithCSP(WebViewTest* test, gcons g_assert_no_error(error.get()); } @@ -3174,5 +3170,5 @@ index a0ab5439a86d..1e80c652dbc0 100644 RefPtr m_queue; }; -- -2.53.0 +2.54.0 diff --git a/sources b/sources index 58d5865..ef800e3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.52.3.tar.xz) = 8007688e4eb5b465a6f50e05e89858f970f7bbaed45844b8f97175de1fb24e41e6d88f4f6b6299d5ae2ad4e19483da371ac16257d787626da29de7551fbd2a3c -SHA512 (webkitgtk-2.52.3.tar.xz.asc) = cb7f6dc0e2d65c763988e9a18c48ee6810d60a8d2351912bdd33358dcd2d46b994ba34f85c6f8315a34d5b5cb78bd2f0dcb78d076af58e657d1817fdd56f005d +SHA512 (webkitgtk-2.52.4.tar.xz) = 0500660199cc00477d4c89b513a4ac772593ea5c490d6ebc97c693761bacd024c80c75df7e826cd1a7c292206d4ab0da2b0d91d0a4790069e575fa58bba7be02 +SHA512 (webkitgtk-2.52.4.tar.xz.asc) = 8d0c7efcdffd67312ce049e10ebe0e0cae914ee53cab6356919b2a70682587f53076abc45a01c2a5bcfb687d9d47a08c12888643134bca8e0ccc889277190b18 diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index 50119d6..984a36e 100644 --- a/webkit2gtk3.spec +++ b/webkit2gtk3.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkit2gtk3 -Version: 2.52.3 +Version: 2.52.4 Release: 1%{?dist} Summary: GTK Web content engine library @@ -48,14 +48,18 @@ Patch306: g-ir-scanner-nonfatal.patch ## Upstream patches to remove, hopefully after next update ## -# https://github.com/WebKit/WebKit/pull/58096 -Patch400: aarch64-build.patch +# https://bugs.webkit.org/show_bug.cgi?id=312677 +Patch: build.patch + +# *** FRAGILE *** +# If the build fails due to undefined reference to an atomic function, then +# ensure the GCC toolset version here matches the version in the buildroot. +BuildRequires: gcc-toolset-15-libatomic-devel BuildRequires: bison BuildRequires: clang BuildRequires: cmake BuildRequires: flex -BuildRequires: gcc-toolset-14-libatomic-devel BuildRequires: gettext BuildRequires: git BuildRequires: gnupg2 @@ -317,6 +321,9 @@ export NINJA_STATUS="[%f/%t][%e] " %{_datadir}/gir-1.0/JavaScriptCore-4.0.gir %changelog +* Wed Jun 10 2026 Michael Catanzaro - 2.52.4-1 +- Update to 2.52.4 + * Wed Apr 22 2026 Michael Catanzaro - 2.52.3-1 - Update to 2.52.3