From e13141d73bb772e68edfa1ec463454a0c76d838d Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Thu, 4 Dec 2025 15:00:51 -0600 Subject: [PATCH] Update to 2.50.3 Resolves: RHEL-130446 Resolves: RHEL-130414 Resolves: RHEL-130401 Resolves: RHEL-130388 Resolves: RHEL-130375 Resolves: RHEL-130362 Resolves: RHEL-130349 Resolves: RHEL-130334 Resolves: RHEL-130320 Resolves: RHEL-130305 Resolves: RHEL-130292 Resolves: RHEL-130264 Resolves: RHEL-130837 Resolves: RHEL-133766 Resolves: RHEL-133750 Resolves: RHEL-132958 Resolves: RHEL-130432 Resolves: RHEL-130279 --- glib-2.56.patch | 31 +++++++++++++++---------------- gstreamer-1.16.patch | 38 +++++++++++++++++++------------------- sources | 4 ++-- webkit2gtk3.spec | 5 ++++- 4 files changed, 40 insertions(+), 38 deletions(-) diff --git a/glib-2.56.patch b/glib-2.56.patch index 99be82c..dc6b5c9 100644 --- a/glib-2.56.patch +++ b/glib-2.56.patch @@ -1,4 +1,4 @@ -From 862976ce1cb811cb96551df1b337b1053755652e Mon Sep 17 00:00:00 2001 +From b668f6fc8731b55105a49e72faf266a90d8e65ac 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 @@ -7,7 +7,7 @@ Subject: [PATCH] Build against GLib 2.56 Source/WTF/wtf/Platform.h | 2 -- Source/WTF/wtf/URL.h | 4 ++-- Source/WTF/wtf/glib/GRefPtr.h | 2 ++ - Source/WTF/wtf/glib/SocketConnection.cpp | 13 +++++++++++++ + Source/WTF/wtf/glib/SocketConnection.cpp | 13 ++++++++++++- Source/WTF/wtf/glib/URLGLib.cpp | 2 ++ Source/WebCore/platform/LowPowerModeNotifier.h | 2 ++ .../platform/glib/LowPowerModeNotifierGLib.cpp | 8 ++++++++ @@ -20,7 +20,7 @@ Subject: [PATCH] Build against GLib 2.56 Source/cmake/OptionsGTK.cmake | 14 ++++++++++++-- Tools/MiniBrowser/gtk/BrowserSettingsDialog.c | 3 ++- Tools/MiniBrowser/gtk/main.c | 3 ++- - 16 files changed, 83 insertions(+), 8 deletions(-) + 16 files changed, 82 insertions(+), 9 deletions(-) diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h index cbb81ce6c8dc..46cbad83fe4e 100644 @@ -79,27 +79,26 @@ index e4cf3bd45104..9729d6709376 100644 WTF_DEFINE_GREF_TRAITS_INLINE(GVariant, g_variant_ref_sink, g_variant_unref, g_variant_is_floating) diff --git a/Source/WTF/wtf/glib/SocketConnection.cpp b/Source/WTF/wtf/glib/SocketConnection.cpp -index 9b8d58d1b916..73423a23211a 100644 +index d28e6dbd67f6..c98362e85f09 100644 --- a/Source/WTF/wtf/glib/SocketConnection.cpp +++ b/Source/WTF/wtf/glib/SocketConnection.cpp -@@ -145,7 +145,20 @@ bool SocketConnection::readMessage() +@@ -165,7 +165,18 @@ bool SocketConnection::readMessage() + GRefPtr parameters; if (!it->value.first.isNull()) { GUniquePtr variantType(g_variant_type_new(it->value.first.data())); - size_t parametersSize = bodySize.value() - messageNameLength.value(); +- parameters = g_variant_new_from_data(variantType.get(), messageData.data(), messageData.size(), FALSE, nullptr, nullptr); + // g_variant_new_from_data() requires the memory to be properly aligned for the type being loaded, + // but it's not possible to know the alignment because g_variant_type_info_query() is not public API. + // Since GLib 2.60 g_variant_new_from_data() already checks the alignment and reallocates the buffer + // in aligned memory only if needed. For older versions we can simply ensure the memory is 8 aligned. -+#if GLIB_CHECK_VERSION(2, 60, 0) - parameters = g_variant_new_from_data(variantType.get(), messageData, parametersSize, FALSE, nullptr, nullptr); -+#else -+ auto* alignedMemory = fastAlignedMalloc(8, parametersSize); -+ memcpy(alignedMemory, messageData, parametersSize); -+ GRefPtr bytes = g_bytes_new_with_free_func(alignedMemory, parametersSize, [](gpointer data) { ++WTF_ALLOW_UNSAFE_BUFFER_USAGE_BEGIN ++ auto* alignedMemory = fastAlignedMalloc(8, messageData.size()); ++ memcpy(alignedMemory, messageData.data(), messageData.size()); ++WTF_ALLOW_UNSAFE_BUFFER_USAGE_END ++ GRefPtr bytes = g_bytes_new_with_free_func(alignedMemory, messageData.size(), [](gpointer data) { + fastAlignedFree(data); + }, alignedMemory); + parameters = g_variant_new_from_bytes(variantType.get(), bytes.get(), FALSE); -+#endif if (messageIsByteSwapped(flags)) parameters = adoptGRef(g_variant_byteswap(parameters.get())); } @@ -396,10 +395,10 @@ index a9ee8507c28a..eae6ab798c8f 100644 issuer = certificate.get(); i++; diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake -index 77ec61c954c0..285ab3737bfa 100644 +index 4522ffdd9f36..0f25e3eae2e1 100644 --- a/Source/cmake/OptionsGTK.cmake +++ b/Source/cmake/OptionsGTK.cmake -@@ -7,8 +7,6 @@ SET_PROJECT_VERSION(2 50 0) +@@ -7,8 +7,6 @@ SET_PROJECT_VERSION(2 50 3) set(USER_AGENT_BRANDING "" CACHE STRING "Branding to add to user agent string") @@ -474,5 +473,5 @@ index d3fbb968ee46..4f49ad82f9fd 100644 } -- -2.51.0 +2.52.0 diff --git a/gstreamer-1.16.patch b/gstreamer-1.16.patch index 00b682a..1b4d311 100644 --- a/gstreamer-1.16.patch +++ b/gstreamer-1.16.patch @@ -1,4 +1,4 @@ -From 69cd5370bdf7c5d449242de3f53097330113301e Mon Sep 17 00:00:00 2001 +From f083d6f8d80c919d185c1b3f77a2bdd705816a2e Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 4 Apr 2025 14:00:12 -0500 Subject: [PATCH] Build against GStreamer 1.16 @@ -106,10 +106,10 @@ index c982bcf51e01..01190fe89f9e 100644 GStreamerAudioMixer& GStreamerAudioMixer::singleton() diff --git a/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp b/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp -index 27a1b479e1ad..b996e3a8b163 100644 +index 419190b917b5..c7b0dacfc117 100644 --- a/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp +++ b/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp -@@ -135,6 +135,25 @@ WARN_UNUSED_RETURN GstPad* webkitGstGhostPadFromStaticTemplate(GstStaticPadTempl +@@ -136,6 +136,25 @@ WARN_UNUSED_RETURN GstPad* webkitGstGhostPadFromStaticTemplate(GstStaticPadTempl } #if ENABLE(VIDEO) @@ -135,7 +135,7 @@ index 27a1b479e1ad..b996e3a8b163 100644 bool getVideoSizeAndFormatFromCaps(const GstCaps* caps, WebCore::IntSize& size, GstVideoFormat& format, int& pixelAspectRatioNumerator, int& pixelAspectRatioDenominator, int& stride, double& frameRate, PlatformVideoColorSpace& colorSpace) { if (!doCapsHaveType(caps, GST_VIDEO_CAPS_TYPE_PREFIX)) { -@@ -634,31 +653,6 @@ void deinitializeGStreamer() +@@ -695,31 +714,6 @@ void deinitializeGStreamer() teardownVideoEncoderSingleton(); teardownGStreamerImageDecoders(); #endif @@ -167,7 +167,7 @@ index 27a1b479e1ad..b996e3a8b163 100644 } unsigned getGstPlayFlag(const char* nick) -@@ -1434,6 +1428,36 @@ String gstStructureToJSONString(const GstStructure* structure) +@@ -1495,6 +1489,36 @@ String gstStructureToJSONString(const GstStructure* structure) return value->toJSONString(); } @@ -204,7 +204,7 @@ index 27a1b479e1ad..b996e3a8b163 100644 GstClockTime webkitGstInitTime() { return s_webkitGstInitTime; -@@ -1491,6 +1515,7 @@ PlatformVideoColorSpace videoColorSpaceFromInfo(const GstVideoInfo& info) +@@ -1552,6 +1576,7 @@ PlatformVideoColorSpace videoColorSpaceFromInfo(const GstVideoInfo& info) case GST_VIDEO_TRANSFER_BT709: colorSpace.transfer = PlatformVideoTransferCharacteristics::Bt709; break; @@ -212,7 +212,7 @@ index 27a1b479e1ad..b996e3a8b163 100644 case GST_VIDEO_TRANSFER_BT601: colorSpace.transfer = PlatformVideoTransferCharacteristics::Smpte170m; break; -@@ -1503,6 +1528,7 @@ PlatformVideoColorSpace videoColorSpaceFromInfo(const GstVideoInfo& info) +@@ -1564,6 +1589,7 @@ PlatformVideoColorSpace videoColorSpaceFromInfo(const GstVideoInfo& info) case GST_VIDEO_TRANSFER_BT2020_10: colorSpace.transfer = PlatformVideoTransferCharacteristics::Bt2020_10bit; break; @@ -220,7 +220,7 @@ index 27a1b479e1ad..b996e3a8b163 100644 case GST_VIDEO_TRANSFER_BT2020_12: colorSpace.transfer = PlatformVideoTransferCharacteristics::Bt2020_12bit; break; -@@ -1621,6 +1647,7 @@ void fillVideoInfoColorimetryFromColorSpace(GstVideoInfo* info, const PlatformVi +@@ -1682,6 +1708,7 @@ void fillVideoInfoColorimetryFromColorSpace(GstVideoInfo* info, const PlatformVi case PlatformVideoTransferCharacteristics::Bt709: GST_VIDEO_INFO_COLORIMETRY(info).transfer = GST_VIDEO_TRANSFER_BT709; break; @@ -228,7 +228,7 @@ index 27a1b479e1ad..b996e3a8b163 100644 case PlatformVideoTransferCharacteristics::Smpte170m: GST_VIDEO_INFO_COLORIMETRY(info).transfer = GST_VIDEO_TRANSFER_BT601; break; -@@ -1633,6 +1660,7 @@ void fillVideoInfoColorimetryFromColorSpace(GstVideoInfo* info, const PlatformVi +@@ -1694,6 +1721,7 @@ void fillVideoInfoColorimetryFromColorSpace(GstVideoInfo* info, const PlatformVi case PlatformVideoTransferCharacteristics::Bt2020_10bit: GST_VIDEO_INFO_COLORIMETRY(info).transfer = GST_VIDEO_TRANSFER_BT2020_10; break; @@ -237,10 +237,10 @@ index 27a1b479e1ad..b996e3a8b163 100644 GST_VIDEO_INFO_COLORIMETRY(info).transfer = GST_VIDEO_TRANSFER_BT2020_12; break; diff --git a/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h b/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h -index 1d176ce8e6ae..81cd5bf8b884 100644 +index 49e031a72585..c7680e1a49c5 100644 --- a/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h +++ b/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h -@@ -70,6 +70,14 @@ inline bool webkitGstCheckVersion(guint major, guint minor, guint micro) +@@ -74,6 +74,14 @@ inline bool webkitGstCheckVersion(guint major, guint minor, guint micro) return true; } @@ -255,7 +255,7 @@ index 1d176ce8e6ae..81cd5bf8b884 100644 #define GST_VIDEO_CAPS_TYPE_PREFIX "video/"_s #define GST_AUDIO_CAPS_TYPE_PREFIX "audio/"_s #define GST_TEXT_CAPS_TYPE_PREFIX "text/"_s -@@ -297,6 +305,13 @@ Vector gstStructureGetList(const GstStructure*, ASCIILiteral key); +@@ -303,6 +311,13 @@ Vector gstStructureGetList(const GstStructure*, ASCIILiteral key); String gstStructureToJSONString(const GstStructure*); @@ -270,19 +270,19 @@ index 1d176ce8e6ae..81cd5bf8b884 100644 PlatformVideoColorSpace videoColorSpaceFromCaps(const GstCaps*); diff --git a/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp b/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp -index 440372617f10..184507cef558 100644 +index f504e21e0e3f..6bc8f319bbcd 100644 --- a/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp +++ b/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp -@@ -604,8 +604,6 @@ bool MediaPlayerPrivateGStreamer::doSeek(const SeekTarget& target, float rate, b +@@ -624,8 +624,6 @@ bool MediaPlayerPrivateGStreamer::doSeek(const SeekTarget& target, float rate, b auto seekStop = toGstClockTime(endTime); - GstEvent* event = gst_event_new_seek(rate, GST_FORMAT_TIME, m_seekFlags, GST_SEEK_TYPE_SET, seekStart, GST_SEEK_TYPE_SET, seekStop); + auto event = adoptGRef(gst_event_new_seek(rate, GST_FORMAT_TIME, seekFlags, GST_SEEK_TYPE_SET, seekStart, GST_SEEK_TYPE_SET, seekStop)); - GST_DEBUG_OBJECT(pipeline(), "[Seek] Performing actual seek to %" GST_TIMEP_FORMAT " (endTime: %" GST_TIMEP_FORMAT ") at rate %f", &seekStart, &seekStop, rate); - if (isAsync) { - gst_element_call_async(m_pipeline.get(), reinterpret_cast(+[](GstElement* pipeline, gpointer userData) { - GstEvent* event = static_cast(userData); -@@ -4278,26 +4276,7 @@ void MediaPlayerPrivateGStreamer::setStreamVolumeElement(GstStreamVolume* volume + auto data = createAsyncSeekData(); + data->event = WTFMove(event); +@@ -4330,26 +4328,7 @@ void MediaPlayerPrivateGStreamer::setStreamVolumeElement(GstStreamVolume* volume bool MediaPlayerPrivateGStreamer::updateVideoSinkStatistics() { @@ -445,5 +445,5 @@ index af7ad6df1f8f..465e9264cbee 100644 if (ENABLE_WEB_AUDIO) if (NOT PC_GSTREAMER_AUDIO_FOUND OR NOT PC_GSTREAMER_FFT_FOUND) -- -2.51.0 +2.52.0 diff --git a/sources b/sources index ff730c9..baf5d91 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.50.1.tar.xz) = 4b7b6c5ae02f1dbcff26e7af4ee4e3cdd4435c61dfaf17c2981422358dea01cfba0ffe8c6f12c7864b6f1ee6c9906dfa64248bc95effed526e9ade3ad1292888 -SHA512 (webkitgtk-2.50.1.tar.xz.asc) = c430677ec8e147750f3dc69f2b6252da9bc9b4df61c0976213dea535be8973dc746b22137d508899d28095f58197e52ffa003ab2033b2c20a6c03d1a1b327e2c +SHA512 (webkitgtk-2.50.3.tar.xz) = 32bebcb99464490ce36116c19e1da40269a7d22bed499056d80a0ad49843defc938203cf3450c122d7ee7aaa87203b265437db400e938e96af30d71f36cef2cf +SHA512 (webkitgtk-2.50.3.tar.xz.asc) = 635998799265ae125ad5ba6e45f939a33f465719756397d125f340818bf35b31d6924dbf91a762201f1f06741c92d2599515f1e28e5d4bdc2a3f16ae678b7aff diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec index d115232..44bf4fa 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.50.1 +Version: 2.50.3 Release: 1%{?dist} Summary: GTK Web content engine library @@ -313,6 +313,9 @@ export NINJA_STATUS="[%f/%t][%e] " %{_datadir}/gir-1.0/JavaScriptCore-4.0.gir %changelog +* Thu Dec 04 2025 Michael Catanzaro - 2.50.3-1 +- Update to 2.50.3 + * Mon Oct 13 2025 Michael Catanzaro - 2.50.1-1 - Update to 2.50.1