commit:     b08c8e936b93d6a9e7f741d1e8396ad5e33e3639
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Dec  6 11:17:39 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Dec  6 11:18:23 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b08c8e93

net-libs/webkit-gtk: fix 2.46.4 build

Closes: https://bugs.gentoo.org/945827
Signed-off-by: Sam James <sam <AT> gentoo.org>

 net-libs/webkit-gtk/files/2.46.4-no-egl.patch     | 115 ++++++++++++++++++++++
 net-libs/webkit-gtk/webkit-gtk-2.46.4-r410.ebuild |   2 +
 net-libs/webkit-gtk/webkit-gtk-2.46.4-r600.ebuild |   2 +
 net-libs/webkit-gtk/webkit-gtk-2.46.4.ebuild      |   2 +
 4 files changed, 121 insertions(+)

diff --git a/net-libs/webkit-gtk/files/2.46.4-no-egl.patch 
b/net-libs/webkit-gtk/files/2.46.4-no-egl.patch
new file mode 100644
index 000000000000..cf66a8c3bf45
--- /dev/null
+++ b/net-libs/webkit-gtk/files/2.46.4-no-egl.patch
@@ -0,0 +1,115 @@
+https://bugs.gentoo.org/945827
+https://bugs.webkit.org/show_bug.cgi?id=283750
+https://github.com/WebKit/WebKit/commit/1cfbdd74e97ea29636ce442322b5399b43937401
+
+From 9cd50ae71cd463145529f86ca0306319cc9a4321 Mon Sep 17 00:00:00 2001
+From: Philippe Normand <[email protected]>
+Date: Wed, 27 Nov 2024 07:20:41 -0800
+Subject: [PATCH] [WPE][GTK] Build fixes for gbm disabled and release logs
+ disabled https://bugs.webkit.org/show_bug.cgi?id=283750
+
+* Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp:
+(WebCore::PeerConnectionBackend::PeerConnectionBackend):
+* Source/WebCore/Modules/mediastream/PeerConnectionBackend.h:
+* Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:
+(WebCore::GStreamerMediaEndpoint::startRTCLogs):
+* Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp:
+* Source/WebCore/platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.h:
+(WKWPE::ViewPlatform::ViewPlatform):
+
+Cherrypicked https://commits.webkit.org/287124@main to 2.46.4
+--- a/Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp
++++ b/Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp
+@@ -165,6 +165,10 @@ 
PeerConnectionBackend::PeerConnectionBackend(RTCPeerConnection& peerConnection)
+         m_shouldFilterICECandidates = 
page->webRTCProvider().isSupportingMDNS();
+ #endif
+ 
++#if RELEASE_LOG_DISABLED
++    m_logIdentifierString = 
makeString(hex(reinterpret_cast<uintptr_t>(this)));
++#endif
++
+ #if !RELEASE_LOG_DISABLED && (PLATFORM(WPE) || PLATFORM(GTK))
+     m_jsonFilePath = 
String::fromUTF8(getenv("WEBKIT_WEBRTC_JSON_EVENTS_FILE"));
+     if (!m_jsonFilePath.isEmpty())
+--- a/Source/WebCore/Modules/mediastream/PeerConnectionBackend.h
++++ b/Source/WebCore/Modules/mediastream/PeerConnectionBackend.h
+@@ -281,8 +281,8 @@ private:
+ #if !RELEASE_LOG_DISABLED
+     Ref<const Logger> m_logger;
+     const void* m_logIdentifier;
+-    String m_logIdentifierString;
+ #endif
++    String m_logIdentifierString;
+     bool m_finishedGatheringCandidates { false };
+     bool m_isProcessingLocalDescriptionAnswer { false };
+ 
+--- a/Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp
++++ b/Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp
+@@ -2228,7 +2228,9 @@ std::optional<bool> 
GStreamerMediaEndpoint::canTrickleIceCandidates() const
+ void GStreamerMediaEndpoint::startRTCLogs()
+ {
+     m_isGatheringRTCLogs = true;
++#if !RELEASE_LOG_DISABLED
+     startLoggingStats();
++#endif
+ }
+ 
+ void GStreamerMediaEndpoint::stopRTCLogs()
+--- a/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp
++++ b/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp
+@@ -1726,7 +1726,7 @@ void gstStructureFilterAndMapInPlace(GstStructure* 
structure, Function<bool(GstI
+ #endif
+ }
+ 
+-#if !GST_CHECK_VERSION(1, 24, 0)
++#if USE(GBM) && !GST_CHECK_VERSION(1, 24, 0)
+ static GstVideoFormat drmFourccToGstVideoFormat(uint32_t fourcc)
+ {
+     switch (fourcc) {
+@@ -1761,7 +1761,7 @@ static GstVideoFormat drmFourccToGstVideoFormat(uint32_t 
fourcc)
+     RELEASE_ASSERT_NOT_REACHED();
+     return GST_VIDEO_FORMAT_UNKNOWN;
+ }
+-#endif // !GST_CHECK_VERSION(1, 24, 0)
++#endif // USE(GBM) && !GST_CHECK_VERSION(1, 24, 0)
+ 
+ #if USE(GBM)
+ GRefPtr<GstCaps> buildDMABufCaps()
+@@ -1805,7 +1805,7 @@ GRefPtr<GstCaps> buildDMABufCaps()
+                 gst_value_list_append_and_take_value(&supportedFormats, 
&value);
+             }
+         }
+-#else
++#elif USE(GBM)
+         GValue value = G_VALUE_INIT;
+         g_value_init(&value, G_TYPE_STRING);
+         g_value_set_string(&value, 
gst_video_format_to_string(drmFourccToGstVideoFormat(format.fourcc)));
+@@ -1815,7 +1815,7 @@ GRefPtr<GstCaps> buildDMABufCaps()
+ 
+ #if GST_CHECK_VERSION(1, 24, 0)
+     gst_caps_set_value(caps.get(), "drm-format", &supportedFormats);
+-#else
++#elif USE(GBM)
+     gst_caps_set_value(caps.get(), "format", &supportedFormats);
+ #endif
+     g_value_unset(&supportedFormats);
+--- 
a/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.h
++++ 
b/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.h
+@@ -93,13 +93,14 @@ private:
+ #if !RELEASE_LOG_DISABLED
+     Ref<const Logger> m_logger;
+     const void* m_logIdentifier;
++#endif
++
+     uint64_t m_nextSourceBufferID { 0 };
+ 
+     // Stores known track IDs, so we can work around ID collisions between 
multiple source buffers.
+     // The registry is placed here to enforce ID uniqueness specifically by 
player, not by process,
+     // since its not an issue if multiple players use the same ID, and we 
want to preserve IDs as much as possible.
+     HashSet<TrackID, WTF::IntHash<TrackID>, 
WTF::UnsignedWithZeroKeyHashTraits<TrackID>> m_trackIdRegistry;
+-#endif
+ };
+ 
+ } // namespace WebCore
+-- 
+2.47.1

diff --git a/net-libs/webkit-gtk/webkit-gtk-2.46.4-r410.ebuild 
b/net-libs/webkit-gtk/webkit-gtk-2.46.4-r410.ebuild
index ae6d1d99d97d..8e3a28eb83da 100644
--- a/net-libs/webkit-gtk/webkit-gtk-2.46.4-r410.ebuild
+++ b/net-libs/webkit-gtk/webkit-gtk-2.46.4-r410.ebuild
@@ -148,6 +148,8 @@ src_prepare() {
 
        # https://bugs.gentoo.org/943213
        eapply "${FILESDIR}"/2.44.4-fix-icu76.1.patch
+       # https://bugs.gentoo.org/945827
+       eapply "${FILESDIR}"/2.46.4-no-egl.patch
 }
 
 src_configure() {

diff --git a/net-libs/webkit-gtk/webkit-gtk-2.46.4-r600.ebuild 
b/net-libs/webkit-gtk/webkit-gtk-2.46.4-r600.ebuild
index 753098b08520..67d0513a0a53 100644
--- a/net-libs/webkit-gtk/webkit-gtk-2.46.4-r600.ebuild
+++ b/net-libs/webkit-gtk/webkit-gtk-2.46.4-r600.ebuild
@@ -159,6 +159,8 @@ src_prepare() {
 
        # https://bugs.gentoo.org/943213
        eapply "${FILESDIR}"/2.44.4-fix-icu76.1.patch
+       # https://bugs.gentoo.org/945827
+       eapply "${FILESDIR}"/2.46.4-no-egl.patch
 }
 
 src_configure() {

diff --git a/net-libs/webkit-gtk/webkit-gtk-2.46.4.ebuild 
b/net-libs/webkit-gtk/webkit-gtk-2.46.4.ebuild
index 251e70b171d4..299d89ff4edc 100644
--- a/net-libs/webkit-gtk/webkit-gtk-2.46.4.ebuild
+++ b/net-libs/webkit-gtk/webkit-gtk-2.46.4.ebuild
@@ -148,6 +148,8 @@ src_prepare() {
 
        # https://bugs.gentoo.org/943213
        eapply "${FILESDIR}"/2.44.4-fix-icu76.1.patch
+       # https://bugs.gentoo.org/945827
+       eapply "${FILESDIR}"/2.46.4-no-egl.patch
 }
 
 src_configure() {

Reply via email to