import UBI webkit2gtk3-2.52.3-0.el9_7.1

This commit is contained in:
AlmaLinux RelEng Bot 2026-04-22 10:28:31 -04:00
parent 11e6c1dcaa
commit 251b5c8c10
11 changed files with 3695 additions and 134 deletions

2
.gitignore vendored
View File

@ -1,2 +1,2 @@
SOURCES/webkitgtk-2.50.4.tar.xz
SOURCES/webkitgtk-2.52.3.tar.xz
SOURCES/webkitgtk-keys.gpg

View File

@ -1,2 +1,2 @@
719c304539cecca945846700cefebc7339eb5924 SOURCES/webkitgtk-2.50.4.tar.xz
17f9b127618040a5f3fcbb70e37ea16ab6d69b0b SOURCES/webkitgtk-2.52.3.tar.xz
04b10b8a486542c4551269c20b18b5c1c6cb4f94 SOURCES/webkitgtk-keys.gpg

329
SOURCES/aarch64-build.patch Normal file
View File

@ -0,0 +1,329 @@
From d610a155a3ce63809265b1045d4516778af2ba6a Mon Sep 17 00:00:00 2001
From: Shu-yu Guo <syg@apple.com>
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<RepatchingInfo>
+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<unsigned>(Gate::jitCagePtr)] = jitCagePtrThunk().code().taggedPtr();
+#if ENABLE(WEBASSEMBLY)
+ // JSPI JITCage gates
+ g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::jspiResignReturnPCs)] = jspiResignReturnPCsThunk().code().taggedPtr();
+ g_jscConfig.llint.gateMap[static_cast<unsigned>(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<unsigned>(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<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getCodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name)); \
+ codeRef16.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide16CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide16")); \
+ codeRef32.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide32CodeFunctionPtr<CFunctionPtrTag>(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<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef8; \
static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef16; \
static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef32; \
- if (Options::useJIT()) { \
- codeRef8.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getCodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name)); \
- codeRef16.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide16CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide16")); \
- codeRef32.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide32CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide32")); \
- } else { \
+ INITIALIZE_JS_GATE_JIT_PATH(name, tag) { \
codeRef8.construct(LLInt::getCodeRef<NativeToJITGatePtrTag>(js_trampoline_##name)); \
codeRef16.construct(LLInt::getWide16CodeRef<NativeToJITGatePtrTag>(js_trampoline_##name)); \
codeRef32.construct(LLInt::getWide32CodeRef<NativeToJITGatePtrTag>(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<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getCodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name)); \
+ codeRef16.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide16CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide16")); \
+ codeRef32.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide32CodeFunctionPtr<CFunctionPtrTag>(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<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef8; \
static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef16; \
static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef32; \
- if (Options::useJIT()) { \
- codeRef8.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getCodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name)); \
- codeRef16.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide16CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide16")); \
- codeRef32.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide32CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide32")); \
- } else { \
+ INITIALIZE_WASM_GATE_JIT_PATH(name, tag) { \
codeRef8.construct(LLInt::getCodeRef<NativeToJITGatePtrTag>(wasm_trampoline_##name)); \
codeRef16.construct(LLInt::getWide16CodeRef<NativeToJITGatePtrTag>(wasm_trampoline_##name)); \
codeRef32.construct(LLInt::getWide32CodeRef<NativeToJITGatePtrTag>(wasm_trampoline_##name)); \
@@ -253,10 +276,12 @@ void initialize()
// This is key to entering the interpreter.
{
static LazyNeverDestroyed<MacroAssemblerCodeRef<VMEntryToJITGatePtrTag>> codeRef;
+#if ENABLE(JIT)
if (Options::useJIT()) {
auto gateCodeRef = createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(&vmEntryToJavaScriptGateAfter), JSEntryPtrTag, "vmEntryToJavaScript");
codeRef.construct(gateCodeRef.retagged<VMEntryToJITGatePtrTag>());
} else
+#endif
codeRef.construct(MacroAssemblerCodeRef<VMEntryToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<VMEntryToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, VMEntryToJITGatePtrTag>(&vmEntryToJavaScriptTrampoline))));
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::vmEntryToJavaScript)] = codeRef.get().code().taggedPtr();
}
@@ -268,79 +293,103 @@ void initialize()
{
static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef;
+#if ENABLE(JIT)
if (Options::useJIT())
codeRef.construct(createTailCallGate(JSEntryPtrTag, true));
else
+#endif
codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&tailCallJSEntryTrampoline))));
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::tailCallJSEntryPtrTag)]= codeRef.get().code().taggedPtr();
}
{
static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef;
+#if ENABLE(JIT)
if (Options::useJIT())
codeRef.construct(createTailCallGate(JSEntryPtrTag, true));
else
+#endif
codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&tailCallJSEntrySlowPathTrampoline))));
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::tailCallJSEntrySlowPathPtrTag)] = codeRef.get().code().taggedPtr();
}
{
static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef;
+#if ENABLE(JIT)
if (Options::useJIT())
codeRef.construct(createTailCallGate(JSEntryPtrTag, false));
else
+#endif
codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&tailCallWithoutUntagJSEntryTrampoline))));
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::tailCallWithoutUntagJSEntryPtrTag)]= codeRef.get().code().taggedPtr();
}
{
static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef;
+#if ENABLE(JIT)
if (Options::useJIT())
codeRef.construct(createWasmTailCallGate(WasmEntryPtrTag));
else
+#endif
codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&wasmTailCallTrampoline))));
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::wasmTailCallWasmEntryPtrTag)]= codeRef.get().code().taggedPtr();
}
{
static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef;
+#if ENABLE(JIT)
if (Options::useJIT())
codeRef.construct(createWasmTailCallGate(WasmEntryPtrTag));
else
+#endif
codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&wasmTailCallTrampoline))));
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::wasmIPIntTailCallWasmEntryPtrTag)]= codeRef.get().code().taggedPtr();
}
{
static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef;
+#if ENABLE(JIT)
if (Options::useJIT())
codeRef.construct(exceptionHandlerGateThunk());
else
+#endif
codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&exceptionHandlerTrampoline))));
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::exceptionHandler)] = codeRef.get().code().taggedPtr();
}
{
static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef;
+#if ENABLE(JIT)
if (Options::useJIT())
codeRef.construct(returnFromLLIntGateThunk());
else
+#endif
codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&returnFromLLIntTrampoline))));
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::returnFromLLInt)] = codeRef.get().code().taggedPtr();
}
+#if ENABLE(JIT)
if (Options::useJIT()) {
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::loopOSREntry)] = loopOSREntryGateThunk().code().taggedPtr();
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::entryOSREntry)] = entryOSREntryGateThunk().code().taggedPtr();
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::wasmOSREntry)] = wasmOSREntryGateThunk().code().taggedPtr();
- } else {
+ } else
+#endif
+ {
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::loopOSREntry)] = LLInt::getCodeRef<NativeToJITGatePtrTag>(loop_osr_entry_gate).code().taggedPtr();
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::entryOSREntry)] = nullptr;
g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::wasmOSREntry)] = nullptr;
}
+#if ENABLE(JIT)
+#define INITIALIZE_TAG_AND_UNTAG_THUNKS_JIT_PATH(name) \
+ if (Options::useJIT()) { \
+ tagCodeRef.construct(tagGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(name##TagGateAfter))); \
+ untagCodeRef.construct(untagGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(name##UntagGateAfter))); \
+ } else
+#else
+#define INITIALIZE_TAG_AND_UNTAG_THUNKS_JIT_PATH(name)
+#endif
+
#define INITIALIZE_TAG_AND_UNTAG_THUNKS(name) \
do { \
static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> tagCodeRef; \
static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> untagCodeRef; \
- if (Options::useJIT()) { \
- tagCodeRef.construct(tagGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(name##TagGateAfter))); \
- untagCodeRef.construct(untagGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(name##UntagGateAfter))); \
- } else { \
+ INITIALIZE_TAG_AND_UNTAG_THUNKS_JIT_PATH(name) { \
tagCodeRef.construct(LLInt::getCodeRef<NativeToJITGatePtrTag>(js_trampoline_##name##_tag)); \
untagCodeRef.construct(LLInt::getCodeRef<NativeToJITGatePtrTag>(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

View File

@ -1,8 +1,17 @@
From 699439119b1bd70de9e4180f2e8e6e32dd794669 Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <mcatanzaro@gnome.org>
Date: Mon, 6 Apr 2026 13:32:19 -0500
Subject: [PATCH] Suppress WEBKIT_FORCE_SANDBOX warning when using Evolution
---
Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp b/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp
index a2f3b582dcc5..1faf219c2adb 100644
index 329dbe6a0281..80b9609a47be 100644
--- a/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp
+++ b/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp
@@ -91,7 +91,8 @@ void WebProcessPool::platformInitialize(NeedsGlobalStaticInitialization)
@@ -154,7 +154,8 @@ void WebProcessPool::platformInitialize(NeedsGlobalStaticInitialization)
else {
static bool once = false;
if (!once) {
@ -12,3 +21,6 @@ index a2f3b582dcc5..1faf219c2adb 100644
once = true;
}
}
--
2.53.0

View File

@ -0,0 +1,28 @@
From 1d1143a6f00fae1d1812da3dcdd489c71154d529 Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <mcatanzaro@gnome.org>
Date: Mon, 6 Apr 2026 18:05:37 -0500
Subject: [PATCH] Make g-ir-scanner warnings nonfatal
Otherwise, the build fails whenever it sees an unrecognized annotation,
which is not great whenever WebKit starts using new annotations that do
not exist in old RHELs.
---
Source/cmake/FindGI.cmake | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Source/cmake/FindGI.cmake b/Source/cmake/FindGI.cmake
index 8cf372f3b172..cb724a418020 100644
--- a/Source/cmake/FindGI.cmake
+++ b/Source/cmake/FindGI.cmake
@@ -342,7 +342,7 @@ function(GI_INTROSPECT namespace nsversion header)
VERBATIM
COMMAND_EXPAND_LISTS
COMMAND ${CMAKE_COMMAND} -E env "CC=${CMAKE_C_COMPILER}" "CFLAGS=${CMAKE_C_FLAGS}"
- "${GI_SCANNER_EXE}" --quiet --warn-all --warn-error --no-libtool
+ "${GI_SCANNER_EXE}" --quiet --warn-all --no-libtool
"--output=${gir_path}"
"--library=$<TARGET_FILE_BASE_NAME:${opt_TARGET}>"
"--library-path=$<TARGET_FILE_DIR:${opt_TARGET}>"
--
2.53.0

View File

@ -1,12 +1,22 @@
From d7b007e4c066c098216ebe900902994c99ab9f9a Mon Sep 17 00:00:00 2001
From e9eb6e9b59fbb92ff30ec88b9a3ff2bd7857c23a Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <mcatanzaro@redhat.com>
Date: Fri, 8 Aug 2025 10:55:54 -0500
Subject: [PATCH] Revert "[GLib] Remove all GLIB_CHECK_VERSION conditionals"
This partially reverts commit 85b637b69f1c3a6242420b198d1c173477ce0f22.
---
Source/WTF/wtf/URL.h | 4 ++--
Source/WTF/wtf/glib/GRefPtr.h | 2 ++
Source/WTF/wtf/glib/URLGLib.cpp | 2 ++
Source/WebCore/platform/LowPowerModeNotifier.h | 2 ++
Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp | 8 ++++++++
.../WebCore/platform/network/soup/CertificateInfoSoup.cpp | 8 ++++++++
Source/WebKit/Shared/glib/ArgumentCodersGLib.cpp | 6 ++++++
Source/cmake/OptionsGTK.cmake | 8 ++++++--
8 files changed, 36 insertions(+), 4 deletions(-)
diff --git a/Source/WTF/wtf/URL.h b/Source/WTF/wtf/URL.h
index daa9f726eb0c..a24c68e1934b 100644
index 677314b5c781..f739e6df4892 100644
--- a/Source/WTF/wtf/URL.h
+++ b/Source/WTF/wtf/URL.h
@@ -27,7 +27,7 @@
@ -28,10 +38,10 @@ index daa9f726eb0c..a24c68e1934b 100644
WTF_EXPORT_PRIVATE GRefPtr<GUri> createGUri() const;
#endif
diff --git a/Source/WTF/wtf/glib/GRefPtr.h b/Source/WTF/wtf/glib/GRefPtr.h
index e4cf3bd45104..9729d6709376 100644
index 46d25f00cc69..d3a764808a6f 100644
--- a/Source/WTF/wtf/glib/GRefPtr.h
+++ b/Source/WTF/wtf/glib/GRefPtr.h
@@ -328,7 +328,9 @@ WTF_DEFINE_GREF_TRAITS_INLINE(GMainLoop, g_main_loop_ref, g_main_loop_unref)
@@ -329,7 +329,9 @@ WTF_DEFINE_GREF_TRAITS_INLINE(GMainLoop, g_main_loop_ref, g_main_loop_unref)
WTF_DEFINE_GREF_TRAITS_INLINE(GMappedFile, g_mapped_file_ref, g_mapped_file_unref)
WTF_DEFINE_GREF_TRAITS_INLINE(GPtrArray, g_ptr_array_ref, g_ptr_array_unref)
WTF_DEFINE_GREF_TRAITS_INLINE(GSource, g_source_ref, g_source_unref)
@ -77,7 +87,7 @@ index c8f2051d77f6..e2ea0dae3292 100644
#endif
};
diff --git a/Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp b/Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp
index e083cc66934e..7c0f55d089e6 100644
index c9bf6a774f49..546a974075c6 100644
--- a/Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp
+++ b/Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp
@@ -28,10 +28,13 @@ namespace WebCore {
@ -85,7 +95,7 @@ index e083cc66934e..7c0f55d089e6 100644
LowPowerModeNotifier::LowPowerModeNotifier(LowPowerModeChangeCallback&& callback)
+#if GLIB_CHECK_VERSION(2, 69, 1)
: m_callback(WTFMove(callback))
: m_callback(WTF::move(callback))
, m_powerProfileMonitor(adoptGRef(g_power_profile_monitor_dup_default()))
, m_lowPowerModeEnabled(g_power_profile_monitor_get_power_saver_enabled(m_powerProfileMonitor.get()))
+#endif
@ -112,7 +122,7 @@ index e083cc66934e..7c0f55d089e6 100644
bool LowPowerModeNotifier::isLowPowerModeEnabled() const
diff --git a/Source/WebCore/platform/network/soup/CertificateInfoSoup.cpp b/Source/WebCore/platform/network/soup/CertificateInfoSoup.cpp
index f32ecca7a300..e81a5433709d 100644
index fb5773d56767..bc10fda05f78 100644
--- a/Source/WebCore/platform/network/soup/CertificateInfoSoup.cpp
+++ b/Source/WebCore/platform/network/soup/CertificateInfoSoup.cpp
@@ -73,9 +73,11 @@ CertificateInfo CertificateInfo::isolatedCopy() const
@ -157,7 +167,7 @@ index f32ecca7a300..e81a5433709d 100644
} // namespace WebCore
diff --git a/Source/WebKit/Shared/glib/ArgumentCodersGLib.cpp b/Source/WebKit/Shared/glib/ArgumentCodersGLib.cpp
index a9ee8507c28a..eae6ab798c8f 100644
index 6112a107f99a..b569c48de5ba 100644
--- a/Source/WebKit/Shared/glib/ArgumentCodersGLib.cpp
+++ b/Source/WebKit/Shared/glib/ArgumentCodersGLib.cpp
@@ -121,11 +121,13 @@ void ArgumentCoder<GRefPtr<GTlsCertificate>>::encode(Encoder& encoder, const GRe
@ -202,33 +212,20 @@ index a9ee8507c28a..eae6ab798c8f 100644
issuer = certificate.get();
i++;
diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake
index 5222f5ea81ab..da3d1e19a602 100644
index a5ebd3e3d879..11227320f60b 100644
--- a/Source/cmake/OptionsGTK.cmake
+++ b/Source/cmake/OptionsGTK.cmake
@@ -7,8 +7,6 @@ SET_PROJECT_VERSION(2 50 0)
@@ -7,8 +7,7 @@ SET_PROJECT_VERSION(2 52 3)
set(USER_AGENT_BRANDING "" CACHE STRING "Branding to add to user agent string")
-# Update Source/WTF/wtf/Platform.h to match required GLib versions.
-find_package(GLIB 2.70.0 REQUIRED COMPONENTS gio gio-unix gobject gthread gmodule)
-find_package(GLib 2.70.0 REQUIRED COMPONENTS GioUnix Thread Module)
+find_package(GLib 2.56.4 REQUIRED COMPONENTS GioUnix Thread Module)
find_package(Cairo 1.16.0 REQUIRED)
find_package(LibGcrypt 1.7.0 REQUIRED)
find_package(Libtasn1 REQUIRED)
@@ -207,6 +205,13 @@ else ()
SET_AND_EXPOSE_TO_BUILD(ENABLE_2022_GLIB_API OFF)
endif ()
+if (ENABLE_2022_GLIB_API)
+ set(GLIB_MINIMUM_VERSION 2.70.0)
+else ()
+ set(GLIB_MINIMUM_VERSION 2.56.4)
+endif ()
+find_package(GLIB ${GLIB_MINIMUM_VERSION} REQUIRED COMPONENTS gio gio-unix gobject gthread gmodule)
+
EXPOSE_STRING_VARIABLE_TO_BUILD(WEBKITGTK_API_INFIX)
EXPOSE_STRING_VARIABLE_TO_BUILD(WEBKITGTK_API_VERSION)
@@ -277,6 +282,11 @@ if (ENABLED_COMPILER_SANITIZERS)
find_package(Soup3 3.0.0 REQUIRED)
@@ -258,6 +257,11 @@ if (ENABLED_COMPILER_SANITIZERS)
set(ENABLE_DOCUMENTATION OFF)
endif ()
@ -241,5 +238,5 @@ index 5222f5ea81ab..da3d1e19a602 100644
find_package(Manette 0.2.4)
if (NOT Manette_FOUND)
--
2.51.0
2.53.0

View File

@ -1,24 +1,22 @@
From a70af9258c7608afd5d05a475e65dd9c2b8a34dc Mon Sep 17 00:00:00 2001
From 5d71fb5d4d39f1cbd8d5393ccaaf4a81b0048331 Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <mcatanzaro@redhat.com>
Date: Thu, 27 Mar 2025 15:56:41 -0500
Subject: [PATCH 1/4] Revert "[CMake] Update minimum ICU version to 70.1"
This reverts commit 95d71be25d5b838b1171e6b9b2cd526190118fba.
---
Source/cmake/OptionsGTK.cmake | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
Source/cmake/OptionsGTK.cmake | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake
index da3d1e19a602..7dc96b5bd53b 100644
index 6d92a94ec9f0..60d14235789a 100644
--- a/Source/cmake/OptionsGTK.cmake
+++ b/Source/cmake/OptionsGTK.cmake
@@ -10,11 +10,11 @@ set(USER_AGENT_BRANDING "" CACHE STRING "Branding to add to user agent string")
find_package(Cairo 1.16.0 REQUIRED)
@@ -12,10 +12,10 @@ find_package(Cairo 1.16.0 REQUIRED)
find_package(LibGcrypt 1.7.0 REQUIRED)
find_package(Libtasn1 REQUIRED)
-find_package(HarfBuzz 2.7.4 REQUIRED COMPONENTS ICU)
find_package(Tasn1 REQUIRED)
find_package(HarfBuzz 2.7.4 REQUIRED COMPONENTS ICU)
-find_package(ICU 70.1 REQUIRED COMPONENTS data i18n uc)
+find_package(HarfBuzz 1.4.2 REQUIRED COMPONENTS ICU)
+find_package(ICU 61.2 REQUIRED COMPONENTS data i18n uc)
find_package(JPEG REQUIRED)
find_package(Epoxy 1.5.4 REQUIRED)
@ -28,10 +26,10 @@ index da3d1e19a602..7dc96b5bd53b 100644
find_package(SQLite3 REQUIRED)
find_package(Threads REQUIRED)
--
2.51.0
2.53.0
From 27948d5683ad0cfa88b6858455f0c8c719d6b9e9 Mon Sep 17 00:00:00 2001
From 1633835edcaaade6d8e76582bce3d84f4fb3743a Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <mcatanzaro@redhat.com>
Date: Fri, 28 Mar 2025 14:45:03 -0500
Subject: [PATCH 2/4] Revert "[JSC] Remove unnecessary ICU version checks"
@ -44,7 +42,7 @@ This reverts commit af62f09a1fad0b72293a7f0d082704d92116cb9a.
3 files changed, 47 insertions(+), 24 deletions(-)
diff --git a/Source/JavaScriptCore/runtime/IntlDurationFormat.cpp b/Source/JavaScriptCore/runtime/IntlDurationFormat.cpp
index 9bf431425007..17c5b1b848d7 100644
index 7be0a6a2b047..d87992a36119 100644
--- a/Source/JavaScriptCore/runtime/IntlDurationFormat.cpp
+++ b/Source/JavaScriptCore/runtime/IntlDurationFormat.cpp
@@ -457,7 +457,7 @@ static Vector<Element> collectElements(JSGlobalObject* globalObject, const IntlD
@ -57,10 +55,10 @@ index 9bf431425007..17c5b1b848d7 100644
skeletonBuilder.append("00"_s);
else
diff --git a/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp b/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp
index b05c7813294c..c16e6bcee859 100644
index a1b08f5470ed..f34684cf7fcf 100644
--- a/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp
+++ b/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp
@@ -496,10 +496,14 @@ void IntlNumberFormat::initializeNumberFormat(JSGlobalObject* globalObject, JSVa
@@ -503,10 +503,14 @@ void IntlNumberFormat::initializeNumberFormat(JSGlobalObject* globalObject, JSVa
skeletonBuilder.append(" sign-except-zero"_s);
break;
case SignDisplay::Negative:
@ -80,10 +78,10 @@ index b05c7813294c..c16e6bcee859 100644
}
diff --git a/Source/JavaScriptCore/runtime/IntlNumberFormatInlines.h b/Source/JavaScriptCore/runtime/IntlNumberFormatInlines.h
index c640b73cc891..e678978e453d 100644
index 8f8444163fc4..81b7c3322fcb 100644
--- a/Source/JavaScriptCore/runtime/IntlNumberFormatInlines.h
+++ b/Source/JavaScriptCore/runtime/IntlNumberFormatInlines.h
@@ -200,12 +200,24 @@ void appendNumberFormatDigitOptionsToSkeleton(IntlType* intlInstance, StringBuil
@@ -201,12 +201,24 @@ void appendNumberFormatDigitOptionsToSkeleton(IntlType* intlInstance, StringBuil
case RoundingMode::Trunc:
skeletonBuilder.append(" rounding-mode-down"_s);
break;
@ -112,7 +110,7 @@ index c640b73cc891..e678978e453d 100644
case RoundingMode::HalfExpand:
skeletonBuilder.append(" rounding-mode-half-up"_s);
break;
@@ -218,7 +230,7 @@ void appendNumberFormatDigitOptionsToSkeleton(IntlType* intlInstance, StringBuil
@@ -219,7 +231,7 @@ void appendNumberFormatDigitOptionsToSkeleton(IntlType* intlInstance, StringBuil
}
// https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#integer-width
@ -121,7 +119,7 @@ index c640b73cc891..e678978e453d 100644
for (unsigned i = 0; i < intlInstance->m_minimumIntegerDigits; ++i)
skeletonBuilder.append('0');
@@ -256,19 +268,23 @@ void appendNumberFormatDigitOptionsToSkeleton(IntlType* intlInstance, StringBuil
@@ -257,19 +269,23 @@ void appendNumberFormatDigitOptionsToSkeleton(IntlType* intlInstance, StringBuil
}
case IntlRoundingType::MorePrecision:
case IntlRoundingType::LessPrecision:
@ -158,7 +156,7 @@ index c640b73cc891..e678978e453d 100644
break;
}
}
@@ -279,7 +295,10 @@ void appendNumberFormatDigitOptionsToSkeleton(IntlType* intlInstance, StringBuil
@@ -280,7 +296,10 @@ void appendNumberFormatDigitOptionsToSkeleton(IntlType* intlInstance, StringBuil
case IntlTrailingZeroDisplay::Auto:
break;
case IntlTrailingZeroDisplay::StripIfInteger:
@ -171,21 +169,21 @@ index c640b73cc891..e678978e453d 100644
}
}
--
2.51.0
2.53.0
From b6447cd0b4ff59c8d2095ad0d6079e4d19dcf052 Mon Sep 17 00:00:00 2001
From 99366b4de20bd0046558e2eacda6dbb69442de01 Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <mcatanzaro@redhat.com>
Date: Fri, 28 Mar 2025 15:01:00 -0500
Subject: [PATCH 3/4] Revert "[JSC] TimeZone Cache should be per-process level"
This reverts commit c779aa30eced87609c7c808d672a8f23c5c4821d.
---
Source/JavaScriptCore/runtime/JSDateMath.cpp | 61 +++++++-------------
1 file changed, 21 insertions(+), 40 deletions(-)
Source/JavaScriptCore/runtime/JSDateMath.cpp | 59 +++++++-------------
1 file changed, 20 insertions(+), 39 deletions(-)
diff --git a/Source/JavaScriptCore/runtime/JSDateMath.cpp b/Source/JavaScriptCore/runtime/JSDateMath.cpp
index 96993af52d33..a269eb1d3736 100644
index 1bcd8fab40ea..3f28081543f8 100644
--- a/Source/JavaScriptCore/runtime/JSDateMath.cpp
+++ b/Source/JavaScriptCore/runtime/JSDateMath.cpp
@@ -453,12 +453,9 @@ String DateCache::timeZoneDisplayName(bool isDST)
@ -234,7 +232,7 @@ index 96993af52d33..a269eb1d3736 100644
- if (canonical.isNull() || isUTCEquivalent(canonical))
- canonical = "UTC"_s;
-
- globalCache.get() = std::tuple { canonical.isolatedCopy(), WTFMove(timeZoneID), currentID };
- globalCache.get() = std::tuple { canonical.isolatedCopy(), WTF::move(timeZoneID), currentID };
- }
- return std::tuple { std::get<0>(globalCache.get()).isolatedCopy(), std::get<1>(globalCache.get()) };
-}
@ -242,7 +240,7 @@ index 96993af52d33..a269eb1d3736 100644
DateCache::~DateCache() = default;
Ref<DateInstanceData> DateCache::cachedDateInstanceData(double millisecondsFromEpoch)
@@ -519,11 +482,29 @@ Ref<DateInstanceData> DateCache::cachedDateInstanceData(double millisecondsFromE
@@ -519,10 +482,28 @@ Ref<DateInstanceData> DateCache::cachedDateInstanceData(double millisecondsFromE
void DateCache::timeZoneCacheSlow()
{
ASSERT(!m_timeZoneCache);
@ -251,35 +249,33 @@ index 96993af52d33..a269eb1d3736 100644
+ Vector<UChar, 32> timeZoneID;
+ getTimeZoneOverride(timeZoneID);
auto* cache = new OpaqueICUTimeZone;
- cache->m_canonicalTimeZoneID = WTFMove(canonical);
- cache->m_canonicalTimeZoneID = WTF::move(canonical);
+
+ String canonical;
UErrorCode status = U_ZERO_ERROR;
- cache->m_calendar = std::unique_ptr<UCalendar, ICUDeleter<ucal_close>>(ucal_open(timeZoneID.span().data(), timeZoneID.size(), "", UCAL_DEFAULT, &status));
+ if (timeZoneID.isEmpty()) {
+ status = callBufferProducingFunction(ucal_getHostTimeZone, timeZoneID);
+ ASSERT_UNUSED(status, U_SUCCESS(status));
+ }
+ if (U_SUCCESS(status)) {
+ Vector<UChar, 32> canonicalBuffer;
+ auto status = callBufferProducingFunction(ucal_getCanonicalTimeZoneID, timeZoneID.data(), timeZoneID.size(), canonicalBuffer, nullptr);
+ auto status = callBufferProducingFunction(ucal_getCanonicalTimeZoneID, timeZoneID.span().data(), timeZoneID.size(), canonicalBuffer, nullptr);
+ if (U_SUCCESS(status))
+ canonical = String(canonicalBuffer);
+ }
+ if (canonical.isNull() || isUTCEquivalent(canonical))
+ canonical = "UTC"_s;
+ cache->m_canonicalTimeZoneID = WTFMove(canonical);
+ cache->m_canonicalTimeZoneID = WTF::move(canonical);
+
+ status = U_ZERO_ERROR;
+ cache->m_calendar = std::unique_ptr<UCalendar, ICUDeleter<ucal_close>>(ucal_open(timeZoneID.data(), timeZoneID.size(), "", UCAL_DEFAULT, &status));
cache->m_calendar = std::unique_ptr<UCalendar, ICUDeleter<ucal_close>>(ucal_open(timeZoneID.span().data(), timeZoneID.size(), "", UCAL_DEFAULT, &status));
ASSERT_UNUSED(status, U_SUCCESS(status));
ucal_setGregorianChange(cache->m_calendar.get(), minECMAScriptTime, &status); // Ignore "unsupported" error.
m_timeZoneCache = std::unique_ptr<OpaqueICUTimeZone, OpaqueICUTimeZoneDeleter>(cache);
--
2.51.0
2.53.0
From dda58836d1af2918a32d80d2ef44e8a13d70edb2 Mon Sep 17 00:00:00 2001
From 8cb673fafaf841ad97b366d183f86954a056c45e Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <mcatanzaro@redhat.com>
Date: Fri, 19 Sep 2025 16:25:13 -0500
Subject: [PATCH 4/4] Revert "[JSC] Rebaseline Intl implementation based on
@ -306,7 +302,7 @@ This reverts commit 31a358087be7e5e70c7a03bdfcf89de35628a2a2.
16 files changed, 478 insertions(+), 16 deletions(-)
diff --git a/Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp b/Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp
index 202e266c55da..9a413dc037a7 100644
index 4eb85711f506..6cdc4507acd3 100644
--- a/Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp
+++ b/Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp
@@ -42,12 +42,16 @@
@ -326,7 +322,7 @@ index 202e266c55da..9a413dc037a7 100644
WTF_ALLOW_UNSAFE_BUFFER_USAGE_BEGIN
@@ -1430,6 +1434,8 @@ UDateIntervalFormat* IntlDateTimeFormat::createDateIntervalFormatIfNecessary(JSG
@@ -1453,6 +1457,8 @@ UDateIntervalFormat* IntlDateTimeFormat::createDateIntervalFormatIfNecessary(JSG
return m_dateIntervalFormat.get();
}
@ -335,7 +331,7 @@ index 202e266c55da..9a413dc037a7 100644
static std::unique_ptr<UFormattedDateInterval, ICUDeleter<udtitvfmt_closeResult>> formattedValueFromDateRange(UDateIntervalFormat& dateIntervalFormat, UDateFormat& dateFormat, double startDate, double endDate, UErrorCode& status)
{
auto result = std::unique_ptr<UFormattedDateInterval, ICUDeleter<udtitvfmt_closeResult>>(udtitvfmt_openResult(&status));
@@ -1508,6 +1514,8 @@ static bool dateFieldsPracticallyEqual(const UFormattedValue* formattedValue, UE
@@ -1531,6 +1537,8 @@ static bool dateFieldsPracticallyEqual(const UFormattedValue* formattedValue, UE
return !hasSpan;
}
@ -344,7 +340,7 @@ index 202e266c55da..9a413dc037a7 100644
JSValue IntlDateTimeFormat::formatRange(JSGlobalObject* globalObject, double startDate, double endDate)
{
ASSERT(m_dateFormat);
@@ -1526,6 +1534,7 @@ JSValue IntlDateTimeFormat::formatRange(JSGlobalObject* globalObject, double sta
@@ -1549,6 +1557,7 @@ JSValue IntlDateTimeFormat::formatRange(JSGlobalObject* globalObject, double sta
auto* dateIntervalFormat = createDateIntervalFormatIfNecessary(globalObject);
RETURN_IF_EXCEPTION(scope, { });
@ -352,10 +348,10 @@ index 202e266c55da..9a413dc037a7 100644
UErrorCode status = U_ZERO_ERROR;
auto result = formattedValueFromDateRange(*dateIntervalFormat, *m_dateFormat, startDate, endDate, status);
if (U_FAILURE(status)) {
@@ -1563,6 +1572,17 @@ JSValue IntlDateTimeFormat::formatRange(JSGlobalObject* globalObject, double sta
@@ -1586,6 +1595,17 @@ JSValue IntlDateTimeFormat::formatRange(JSGlobalObject* globalObject, double sta
replaceNarrowNoBreakSpaceOrThinSpaceWithNormalSpace(buffer);
return jsString(vm, String(WTFMove(buffer)));
return jsString(vm, String(WTF::move(buffer)));
+#else
+ Vector<UChar, 32> buffer;
+ auto status = callBufferProducingFunction(udtitvfmt_format, dateIntervalFormat, startDate, endDate, buffer, nullptr);
@ -365,12 +361,12 @@ index 202e266c55da..9a413dc037a7 100644
+ }
+ replaceNarrowNoBreakSpaceOrThinSpaceWithNormalSpace(buffer);
+
+ return jsString(vm, String(WTFMove(buffer)));
+ return jsString(vm, String(wtf::move(buffer)));
+#endif
}
JSValue IntlDateTimeFormat::formatRangeToParts(JSGlobalObject* globalObject, double startDate, double endDate)
@@ -1572,6 +1592,7 @@ JSValue IntlDateTimeFormat::formatRangeToParts(JSGlobalObject* globalObject, dou
@@ -1595,6 +1615,7 @@ JSValue IntlDateTimeFormat::formatRangeToParts(JSGlobalObject* globalObject, dou
VM& vm = globalObject->vm();
auto scope = DECLARE_THROW_SCOPE(vm);
@ -378,7 +374,7 @@ index 202e266c55da..9a413dc037a7 100644
// http://tc39.es/proposal-intl-DateTimeFormat-formatRange/#sec-partitiondatetimerangepattern
startDate = timeClip(startDate);
endDate = timeClip(endDate);
@@ -1775,6 +1796,12 @@ JSValue IntlDateTimeFormat::formatRangeToParts(JSGlobalObject* globalObject, dou
@@ -1798,6 +1819,12 @@ JSValue IntlDateTimeFormat::formatRangeToParts(JSGlobalObject* globalObject, dou
}
return parts;
@ -434,7 +430,7 @@ index 7a739f61e2c1..da457ad03212 100644
}
diff --git a/Source/JavaScriptCore/runtime/IntlDurationFormat.cpp b/Source/JavaScriptCore/runtime/IntlDurationFormat.cpp
index 17c5b1b848d7..c066e80ab130 100644
index d87992a36119..ba46191c620f 100644
--- a/Source/JavaScriptCore/runtime/IntlDurationFormat.cpp
+++ b/Source/JavaScriptCore/runtime/IntlDurationFormat.cpp
@@ -36,14 +36,21 @@
@ -496,13 +492,13 @@ index 17c5b1b848d7..c066e80ab130 100644
auto scope = DECLARE_THROW_SCOPE(vm);
+#if HAVE(ICU_U_LIST_FORMATTER)
auto elements = collectElements(globalObject, this, WTFMove(duration));
auto elements = collectElements(globalObject, this, WTF::move(duration));
RETURN_IF_EXCEPTION(scope, { });
@@ -676,6 +694,10 @@ JSValue IntlDurationFormat::format(JSGlobalObject* globalObject, ISO8601::Durati
return throwTypeError(globalObject, scope, "failed to format list of strings"_s);
return jsString(vm, String(WTFMove(result)));
return jsString(vm, String(WTF::move(result)));
+#else
+ UNUSED_PARAM(duration);
+ return throwTypeError(globalObject, scope, "failed to format list of strings"_s);
@ -515,7 +511,7 @@ index 17c5b1b848d7..c066e80ab130 100644
auto scope = DECLARE_THROW_SCOPE(vm);
+#if HAVE(ICU_U_LIST_FORMATTER)
auto elements = collectElements(globalObject, this, WTFMove(duration));
auto elements = collectElements(globalObject, this, WTF::move(duration));
RETURN_IF_EXCEPTION(scope, { });
@@ -836,6 +859,10 @@ JSValue IntlDurationFormat::formatToParts(JSGlobalObject* globalObject, ISO8601:
@ -544,7 +540,7 @@ index 69e64f9c8332..b3f781a54ad4 100644
String m_numberingSystem;
CString m_dataLocaleWithExtensions;
diff --git a/Source/JavaScriptCore/runtime/IntlListFormat.cpp b/Source/JavaScriptCore/runtime/IntlListFormat.cpp
index 8bc64220a7c7..c24073ce3171 100644
index bcaa44af1fbd..b565a532cb0e 100644
--- a/Source/JavaScriptCore/runtime/IntlListFormat.cpp
+++ b/Source/JavaScriptCore/runtime/IntlListFormat.cpp
@@ -33,12 +33,19 @@
@ -608,7 +604,7 @@ index 8bc64220a7c7..c24073ce3171 100644
@@ -176,6 +191,10 @@ JSValue IntlListFormat::format(JSGlobalObject* globalObject, JSValue list) const
return throwTypeError(globalObject, scope, "failed to format list of strings"_s);
return jsString(vm, String(WTFMove(result)));
return jsString(vm, String(WTF::move(result)));
+#else
+ UNUSED_PARAM(list);
+ return throwTypeError(globalObject, scope, "failed to format list of strings"_s);
@ -653,7 +649,7 @@ index 2d071949e06f..af6f2c2e7b0a 100644
namespace JSC {
diff --git a/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp b/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp
index c16e6bcee859..1fc664fab1e5 100644
index f34684cf7fcf..e5c9f5850e46 100644
--- a/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp
+++ b/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp
@@ -43,8 +43,12 @@
@ -720,7 +716,7 @@ index c16e6bcee859..1fc664fab1e5 100644
// These should not show up because there is no way to specify them in NumberFormat options.
// If they do, they don't fit well into any of known part types, so consider it an "unknown".
case UNUM_PERMILL_FIELD:
@@ -399,6 +411,7 @@ void IntlNumberFormat::initializeNumberFormat(JSGlobalObject* globalObject, JSVa
@@ -406,6 +418,7 @@ void IntlNumberFormat::initializeNumberFormat(JSGlobalObject* globalObject, JSVa
// Options are obtained. Configure formatter here.
@ -728,7 +724,7 @@ index c16e6bcee859..1fc664fab1e5 100644
// Constructing ICU Number Skeletons to configure UNumberFormatter.
// https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md
@@ -536,11 +549,120 @@ void IntlNumberFormat::initializeNumberFormat(JSGlobalObject* globalObject, JSVa
@@ -543,11 +556,120 @@ void IntlNumberFormat::initializeNumberFormat(JSGlobalObject* globalObject, JSVa
return;
}
@ -849,7 +845,7 @@ index c16e6bcee859..1fc664fab1e5 100644
}
// https://tc39.es/ecma402/#sec-formatnumber
@@ -552,6 +674,7 @@ JSValue IntlNumberFormat::format(JSGlobalObject* globalObject, double value) con
@@ -559,6 +681,7 @@ JSValue IntlNumberFormat::format(JSGlobalObject* globalObject, double value) con
value = purifyNaN(value);
Vector<char16_t, 32> buffer;
@ -857,7 +853,7 @@ index c16e6bcee859..1fc664fab1e5 100644
ASSERT(m_numberFormatter);
UErrorCode status = U_ZERO_ERROR;
auto formattedNumber = std::unique_ptr<UFormattedNumber, ICUDeleter<unumf_closeResult>>(unumf_openResult(&status));
@@ -563,6 +686,12 @@ JSValue IntlNumberFormat::format(JSGlobalObject* globalObject, double value) con
@@ -570,6 +693,12 @@ JSValue IntlNumberFormat::format(JSGlobalObject* globalObject, double value) con
status = callBufferProducingFunction(unumf_resultToString, formattedNumber.get(), buffer);
if (U_FAILURE(status))
return throwTypeError(globalObject, scope, "Failed to format a number."_s);
@ -867,10 +863,10 @@ index c16e6bcee859..1fc664fab1e5 100644
+ if (U_FAILURE(status))
+ return throwTypeError(globalObject, scope, "Failed to format a number."_s);
+#endif
return jsString(vm, String(WTFMove(buffer)));
return jsString(vm, String(WTF::move(buffer)));
}
@@ -576,6 +705,7 @@ JSValue IntlNumberFormat::format(JSGlobalObject* globalObject, IntlMathematicalV
@@ -583,6 +712,7 @@ JSValue IntlNumberFormat::format(JSGlobalObject* globalObject, IntlMathematicalV
const auto& string = value.getString();
Vector<char16_t, 32> buffer;
@ -878,7 +874,7 @@ index c16e6bcee859..1fc664fab1e5 100644
ASSERT(m_numberFormatter);
UErrorCode status = U_ZERO_ERROR;
auto formattedNumber = std::unique_ptr<UFormattedNumber, ICUDeleter<unumf_closeResult>>(unumf_openResult(&status));
@@ -587,9 +717,16 @@ JSValue IntlNumberFormat::format(JSGlobalObject* globalObject, IntlMathematicalV
@@ -594,9 +724,16 @@ JSValue IntlNumberFormat::format(JSGlobalObject* globalObject, IntlMathematicalV
status = callBufferProducingFunction(unumf_resultToString, formattedNumber.get(), buffer);
if (U_FAILURE(status))
return throwTypeError(globalObject, scope, "Failed to format a BigInt."_s);
@ -888,14 +884,14 @@ index c16e6bcee859..1fc664fab1e5 100644
+ if (U_FAILURE(status))
+ return throwTypeError(globalObject, scope, "Failed to format a BigInt."_s);
+#endif
return jsString(vm, String(WTFMove(buffer)));
return jsString(vm, String(WTF::move(buffer)));
}
+#if HAVE(ICU_U_NUMBER_RANGE_FORMATTER)
JSValue IntlNumberFormat::formatRange(JSGlobalObject* globalObject, double start, double end) const
{
VM& vm = globalObject->vm();
@@ -657,6 +794,7 @@ JSValue IntlNumberFormat::formatRange(JSGlobalObject* globalObject, IntlMathemat
@@ -664,6 +801,7 @@ JSValue IntlNumberFormat::formatRange(JSGlobalObject* globalObject, IntlMathemat
return jsString(vm, String({ string, static_cast<size_t>(length) }));
}
@ -903,7 +899,7 @@ index c16e6bcee859..1fc664fab1e5 100644
static constexpr int32_t literalField = -1;
struct IntlNumberFormatField {
@@ -769,6 +907,7 @@ static Vector<IntlNumberFormatField> flattenFields(Vector<IntlNumberFormatField>
@@ -776,6 +914,7 @@ static Vector<IntlNumberFormatField> flattenFields(Vector<IntlNumberFormatField>
return flatten;
}
@ -911,7 +907,7 @@ index c16e6bcee859..1fc664fab1e5 100644
static bool numberFieldsPracticallyEqual(const UFormattedValue* formattedValue, UErrorCode& status)
{
auto iterator = std::unique_ptr<UConstrainedFieldPosition, ICUDeleter<ucfpos_close>>(ucfpos_open(&status));
@@ -1010,6 +1149,7 @@ JSValue IntlNumberFormat::formatRangeToParts(JSGlobalObject* globalObject, IntlM
@@ -1017,6 +1156,7 @@ JSValue IntlNumberFormat::formatRangeToParts(JSGlobalObject* globalObject, IntlM
return parts;
}
@ -919,7 +915,7 @@ index c16e6bcee859..1fc664fab1e5 100644
ASCIILiteral IntlNumberFormat::styleString(Style style)
{
@@ -1307,6 +1447,7 @@ JSValue IntlNumberFormat::formatToParts(JSGlobalObject* globalObject, double val
@@ -1314,6 +1454,7 @@ JSValue IntlNumberFormat::formatToParts(JSGlobalObject* globalObject, double val
return throwTypeError(globalObject, scope, "failed to open field position iterator"_s);
Vector<char16_t, 32> result;
@ -927,7 +923,7 @@ index c16e6bcee859..1fc664fab1e5 100644
ASSERT(m_numberFormatter);
auto formattedNumber = std::unique_ptr<UFormattedNumber, ICUDeleter<unumf_closeResult>>(unumf_openResult(&status));
if (U_FAILURE(status))
@@ -1321,6 +1462,13 @@ JSValue IntlNumberFormat::formatToParts(JSGlobalObject* globalObject, double val
@@ -1328,6 +1469,13 @@ JSValue IntlNumberFormat::formatToParts(JSGlobalObject* globalObject, double val
if (U_FAILURE(status))
return throwTypeError(globalObject, scope, "Failed to format a number."_s);
IntlFieldIterator iterator(*fieldItr.get());
@ -939,9 +935,9 @@ index c16e6bcee859..1fc664fab1e5 100644
+ IntlFieldIterator iterator(*fieldItr.get());
+#endif
auto resultString = String(WTFMove(result));
auto resultString = String(WTF::move(result));
@@ -1334,6 +1482,7 @@ JSValue IntlNumberFormat::formatToParts(JSGlobalObject* globalObject, double val
@@ -1341,6 +1489,7 @@ JSValue IntlNumberFormat::formatToParts(JSGlobalObject* globalObject, double val
return parts;
}
@ -949,7 +945,7 @@ index c16e6bcee859..1fc664fab1e5 100644
JSValue IntlNumberFormat::formatToParts(JSGlobalObject* globalObject, IntlMathematicalValue&& value, JSString* sourceType) const
{
VM& vm = globalObject->vm();
@@ -1378,6 +1527,7 @@ JSValue IntlNumberFormat::formatToParts(JSGlobalObject* globalObject, IntlMathem
@@ -1385,6 +1534,7 @@ JSValue IntlNumberFormat::formatToParts(JSGlobalObject* globalObject, IntlMathem
return parts;
}
@ -1042,7 +1038,7 @@ index 65a6795b013f..29d197e462fb 100644
String m_locale;
String m_numberingSystem;
diff --git a/Source/JavaScriptCore/runtime/IntlNumberFormatPrototype.cpp b/Source/JavaScriptCore/runtime/IntlNumberFormatPrototype.cpp
index d951aa27c715..4e3615ba7242 100644
index 23ea9bf1ce04..92e9dcad1127 100644
--- a/Source/JavaScriptCore/runtime/IntlNumberFormatPrototype.cpp
+++ b/Source/JavaScriptCore/runtime/IntlNumberFormatPrototype.cpp
@@ -35,12 +35,18 @@
@ -1104,7 +1100,7 @@ index d951aa27c715..4e3615ba7242 100644
VM& vm = globalObject->vm();
@@ -163,6 +174,7 @@ JSC_DEFINE_HOST_FUNCTION(intlNumberFormatPrototypeFuncFormatRange, (JSGlobalObje
RELEASE_AND_RETURN(scope, JSValue::encode(numberFormat->formatRange(globalObject, WTFMove(start), WTFMove(end))));
RELEASE_AND_RETURN(scope, JSValue::encode(numberFormat->formatRange(globalObject, WTF::move(start), WTF::move(end))));
}
+#endif
@ -1121,7 +1117,7 @@ index d951aa27c715..4e3615ba7242 100644
@@ -184,8 +197,15 @@ JSC_DEFINE_HOST_FUNCTION(intlNumberFormatPrototypeFuncFormatToParts, (JSGlobalOb
RELEASE_AND_RETURN(scope, JSValue::encode(numberFormat->formatToParts(globalObject, number.value())));
RELEASE_AND_RETURN(scope, JSValue::encode(numberFormat->formatToParts(globalObject, WTFMove(value))));
RELEASE_AND_RETURN(scope, JSValue::encode(numberFormat->formatToParts(globalObject, WTF::move(value))));
+#else
+ double value = callFrame->argument(0).toNumber(globalObject);
+ RETURN_IF_EXCEPTION(scope, { });
@ -1136,14 +1132,14 @@ index d951aa27c715..4e3615ba7242 100644
VM& vm = globalObject->vm();
@@ -215,6 +235,7 @@ JSC_DEFINE_HOST_FUNCTION(intlNumberFormatPrototypeFuncFormatRangeToParts, (JSGlo
RELEASE_AND_RETURN(scope, JSValue::encode(numberFormat->formatRangeToParts(globalObject, WTFMove(start), WTFMove(end))));
RELEASE_AND_RETURN(scope, JSValue::encode(numberFormat->formatRangeToParts(globalObject, WTF::move(start), WTF::move(end))));
}
+#endif
JSC_DEFINE_HOST_FUNCTION(intlNumberFormatPrototypeFuncResolvedOptions, (JSGlobalObject* globalObject, CallFrame* callFrame))
{
diff --git a/Source/JavaScriptCore/runtime/IntlObject.cpp b/Source/JavaScriptCore/runtime/IntlObject.cpp
index 8ef1ee678063..f8413f12dec7 100644
index a79aba3e7717..899ea323a08a 100644
--- a/Source/JavaScriptCore/runtime/IntlObject.cpp
+++ b/Source/JavaScriptCore/runtime/IntlObject.cpp
@@ -169,8 +169,6 @@ namespace JSC {
@ -1170,7 +1166,7 @@ index 8ef1ee678063..f8413f12dec7 100644
Structure* IntlObject::createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype)
diff --git a/Source/JavaScriptCore/runtime/IntlPluralRules.cpp b/Source/JavaScriptCore/runtime/IntlPluralRules.cpp
index b3e58fc6453f..c451478086f7 100644
index 54feb0061675..884bd1c96e4e 100644
--- a/Source/JavaScriptCore/runtime/IntlPluralRules.cpp
+++ b/Source/JavaScriptCore/runtime/IntlPluralRules.cpp
@@ -36,8 +36,12 @@
@ -1242,7 +1238,7 @@ index b3e58fc6453f..c451478086f7 100644
@@ -245,8 +276,17 @@ JSValue IntlPluralRules::select(JSGlobalObject* globalObject, double value) cons
if (U_FAILURE(status))
return throwTypeError(globalObject, scope, "failed to select plural value"_s);
return jsString(vm, String(WTFMove(buffer)));
return jsString(vm, String(WTF::move(buffer)));
+#else
+ Vector<UChar, 8> result(8);
+ auto length = uplrules_selectWithFormat(m_pluralRules.get(), value, m_numberFormat.get(), result.data(), result.size(), &status);
@ -1259,7 +1255,7 @@ index b3e58fc6453f..c451478086f7 100644
ASSERT(m_numberRangeFormatter);
@@ -272,5 +312,6 @@ JSValue IntlPluralRules::selectRange(JSGlobalObject* globalObject, double start,
return throwTypeError(globalObject, scope, "failed to select plural value"_s);
return jsString(vm, String(WTFMove(buffer)));
return jsString(vm, String(WTF::move(buffer)));
}
+#endif
@ -1379,7 +1375,7 @@ index c6c1fa0cd228..85d7e85469a7 100644
} // namespace JSC
diff --git a/Source/JavaScriptCore/runtime/JSDateMath.cpp b/Source/JavaScriptCore/runtime/JSDateMath.cpp
index a269eb1d3736..a58abd12197a 100644
index 3f28081543f8..ff26051bf502 100644
--- a/Source/JavaScriptCore/runtime/JSDateMath.cpp
+++ b/Source/JavaScriptCore/runtime/JSDateMath.cpp
@@ -81,11 +81,24 @@
@ -1509,7 +1505,7 @@ index a269eb1d3736..a58abd12197a 100644
{
@@ -447,6 +513,21 @@ String DateCache::timeZoneDisplayName(bool isDST)
if (U_SUCCESS(status))
m_timeZoneDSTDisplayNameCache = String::adopt(WTFMove(dstDisplayNameBuffer));
m_timeZoneDSTDisplayNameCache = String::adopt(WTF::move(dstDisplayNameBuffer));
}
+#else
+ auto& timeZoneCache = *toICUTimeZone(this->timeZoneCache());
@ -1553,5 +1549,5 @@ index a269eb1d3736..a58abd12197a 100644
void DateCache::resetIfNecessarySlow()
--
2.51.0
2.53.0

3178
SOURCES/libsoup2.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEAToBJ6ycZbNP+mJSbBAJtpOXU5MFAmlBXggACgkQbBAJtpOX
U5NxbQ//dZodv6dQ3WRUTgorM7pHee7jHLZXyezL7qRuUvHKSKKKtZd6AnA/jhV9
J7qRh+5oCdVmZeXNoEgpw4H7eiatHAV8nlM5BYLU8Q0aubxr5IyGQjWarGEbcBSV
DD5r3tR0yywqoUR+uWNDMLOC0jFwvMKusmHZ36rWN28hW192lo8EvhFVza1Jwgnt
PTOvaV32ZVXsLr//WNpBhcxEOWPYIgQW4btAAdFsyWigi8USqwMan0Anc0ok6CdP
r8BNsyYFHl3y/Kx74lsvdLC3nFF21BORjODaHp98FPSwjqnfK5fbhMSLhhuR172J
AXCEdYgzt9i/jIJK8yegJsPMdTFIlEM/d5h3utp1s3Ne0i5wf4NQ4jdhZJ/Lfxqw
KYUg4CCO7p2VMoW3+AOFu+atwi5JpERDvYLfHqxQUcbTLFOv4fURbCicvC94Cr2J
g2QAhipt0ETbYahbkF4GwFTZY3ncJ9fBZ5YrADZjBbU2p6N/BJTqXggtVtq0iWNh
phcooz2JUJx6hZQBzXi2I61XwfeH6uzV9fwY5gV1tSXP6CxXiJo7FvpYuheKxa/W
ZR59aYg6bURJy0yC/PNENH5AkyllxSEwLs9wMPMpTVe+DR/VZs176eJZkchq4Q/L
/HeGL6Wcap8YMJi8cC5Dy60vv0IXp33n8/tu1EdtOdQTqo65hl0=
=Bi4F
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,6 @@
-----BEGIN PGP SIGNATURE-----
iF0EABEIAB0WIQRao7wzT9fjNp58d7KRxVnb5MkSOwUCaeFIpQAKCRCRxVnb5MkS
O8UZAJ9EPfX10mIMYGlbhCCd+qxbeyuYTACfYOdgIlth6/ymZ8mJqPdABc8bQQk=
=zK1i
-----END PGP SIGNATURE-----

View File

@ -19,8 +19,8 @@
%endif
Name: webkit2gtk3
Version: 2.50.4
Release: 1%{?dist}
Version: 2.52.3
Release: 0%{?dist}.1
Summary: GTK Web content engine library
License: LGPLv2
@ -36,7 +36,9 @@ Source2: webkitgtk-keys.gpg
## Patches to support older or missing build dependencies
##
Patch: glib-2-68.patch
Patch: libsoup2.patch
Patch: icu-67.patch
Patch: g-ir-scanner-nonfatal.patch
##
## Patches to support older Evolution
@ -46,14 +48,16 @@ Patch: evolution-sandbox-warning.patch
##
## Upstream patches to remove, hopefully after next update
##
# No patches currently! :)
# https://github.com/WebKit/WebKit/pull/58096
Patch: aarch64-build.patch
BuildRequires: bison
BuildRequires: bubblewrap
BuildRequires: clang
BuildRequires: cmake
BuildRequires: flex
BuildRequires: gcc-toolset-14-libatomic-devel
BuildRequires: gettext
BuildRequires: git
BuildRequires: gnupg2
@ -325,16 +329,40 @@ export NINJA_STATUS="[%f/%t][%e] "
%{_datadir}/gir-1.0/JavaScriptCore-4.0.gir
%changelog
* Thu Dec 18 2025 Tomas Popela <tpopela@redhat.com> - 2.50.4-1
* Mon Apr 20 2026 Michael Catanzaro <mcatanzaro@redhat.com> - 2.52.3-0.1
- Update to 2.52.1
* Fri Dec 19 2025 Ravina Jain <rajain@redhat.com> - 2.50.4-1
- Update to 2.50.4
- Fix CVE-2025-43529 with Rebase
- Fix CVE-2025-43531 with Rebase
- Fix CVE-2025-43501 with Rebase
- Fix CVE-2025-43536 with Rebase
- Fix CVE-2025-43535 with Rebase
- Fix CVE-2025-43541 with Rebase
* Thu Dec 04 2025 Michael Catanzaro <mcatanzaro@redhat.com> - 2.50.3-1
* Fri Dec 05 2025 Kashyap <kekbote@redhat.com> - 2.50.3-1
- Update to 2.50.3
- Fix CVE-2025-43443 with Rebase
- Fix CVE-2025-43440 with Rebase
- Fix CVE-2025-43434 with Rebase
- Fix CVE-2025-43432 with Rebase
- Fix CVE-2025-43431 with Rebase
- Fix CVE-2025-43430 with Rebase
- Fix CVE-2025-43429 with Rebase
- Fix CVE-2025-43427 with Rebase
- Fix CVE-2025-43425 with Rebase
- Fix CVE-2025-43421 with Rebase
- Fix CVE-2025-43392 with Rebase
- Fix CVE-2025-66287 with Rebase
- Fix CVE-2025-43458 with Rebase
- Fix CVE-2025-13947 with Rebase
- Fix CVE-2025-13502 with Rebase
* Mon Oct 13 2025 Michael Catanzaro <mcatanzaro@redhat.com> - 2.50.1-1
* Tue Oct 14 2025 Michael Catanzaro <mcatanzaro@redhat.com> - 2.50.1-1
- Update to 2.50.1
* Mon Sep 22 2025 Michael Catanzaro <mcatanzaro@redhat.com> - 2.50.0-1
* Wed Oct 01 2025 Michael Catanzaro <mcatanzaro@redhat.com> - 2.50.0-1
- Update to 2.50.0
* Fri Aug 08 2025 Michael Catanzaro <mcatanzaro@redhat.com> - 2.48.5-1
@ -350,9 +378,12 @@ export NINJA_STATUS="[%f/%t][%e] "
* Wed Apr 02 2025 Michael Catanzaro <mcatanzaro@redhat.com> - 2.48.1-1
- Update to 2.48.1
* Mon Mar 24 2025 Michael Catanzaro <mcatanzaro@redhat.com> - 2.48.0-1
* Mon Mar 31 2025 Michael Catanzaro <mcatanzaro@redhat.com> - 2.48.0-1
- Update to 2.48.0
* Thu Mar 13 2025 Michael Catanzaro <mcatanzaro@redhat.com> - 2.46.6-2
- Add patch for CVE-2025-24201
* Tue Feb 25 2025 Michael Catanzaro <mcatanzaro@redhat.com> - 2.46.6-1
- Update to 2.46.6