Building wpewebkit with ENABLE_VIDEO=OFF is broken. There are several
locations that unconditionally use classes that are hidden behind `if
ENABLE(VIDEO)` and the build exposes various missing definitions.  As a
workaround prevent the build with ENABLE_VIDEO=OFF.

Disable ENABLE_WPE_PLATFORM_DRM, ENABLE_WPE_PLATFORM_HEADLESS, and
ENABLE_WPE_PLATFORM_WAYLAND since they only have an effect if
ENABLE_WPE_PLATFORM is ON, which is disabled as an experimental feature.
The WPE Platform API is an alternative to libwpe and the WPE backends.

Add libdrm as dependency and enable USE_LIBDRM, since USE_GBM has been
split in USE_GBM and USE_LIBDRM to better handle code that requires DRM
but not GBM.

Signed-off-by: Michael Tretter <[email protected]>
---
 ...uild-fix.-Remove-when-fixed-upstream.patch | 20 +++++++++
 ...-Add-missing-header-PageIdentifier.h.patch | 28 +++++++++++++
 patches/wpewebkit-2.49.3/series               |  5 +++
 rules/wpewebkit.in                            |  3 ++
 rules/wpewebkit.make                          | 42 +++++++++++--------
 5 files changed, 81 insertions(+), 17 deletions(-)
 create mode 100644 
patches/wpewebkit-2.49.3/0001-Unified-build-fix.-Remove-when-fixed-upstream.patch
 create mode 100644 
patches/wpewebkit-2.49.3/0002-Add-missing-header-PageIdentifier.h.patch
 create mode 100644 patches/wpewebkit-2.49.3/series

diff --git 
a/patches/wpewebkit-2.49.3/0001-Unified-build-fix.-Remove-when-fixed-upstream.patch
 
b/patches/wpewebkit-2.49.3/0001-Unified-build-fix.-Remove-when-fixed-upstream.patch
new file mode 100644
index 000000000000..70598993a889
--- /dev/null
+++ 
b/patches/wpewebkit-2.49.3/0001-Unified-build-fix.-Remove-when-fixed-upstream.patch
@@ -0,0 +1,20 @@
+From: Miguel Gomez <[email protected]>
+Date: Thu, 19 Jun 2025 12:45:39 +0200
+Subject: [PATCH] Unified build fix. Remove when fixed upstream
+
+---
+ Source/WebKit/UIProcess/ProvisionalPageProxy.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Source/WebKit/UIProcess/ProvisionalPageProxy.h 
b/Source/WebKit/UIProcess/ProvisionalPageProxy.h
+index a1d831a61655..a0486033a6e0 100644
+--- a/Source/WebKit/UIProcess/ProvisionalPageProxy.h
++++ b/Source/WebKit/UIProcess/ProvisionalPageProxy.h
+@@ -34,6 +34,7 @@
+ #include "WebFramePolicyListenerProxy.h"
+ #include "WebPageProxyIdentifier.h"
+ #include "WebPageProxyMessageReceiverRegistration.h"
++#include "WebsiteDataStore.h"
+ #include <WebCore/DiagnosticLoggingClient.h>
+ #include <WebCore/FrameIdentifier.h>
+ #include <WebCore/FrameLoaderClient.h>
diff --git 
a/patches/wpewebkit-2.49.3/0002-Add-missing-header-PageIdentifier.h.patch 
b/patches/wpewebkit-2.49.3/0002-Add-missing-header-PageIdentifier.h.patch
new file mode 100644
index 000000000000..dc8d3695a9e6
--- /dev/null
+++ b/patches/wpewebkit-2.49.3/0002-Add-missing-header-PageIdentifier.h.patch
@@ -0,0 +1,28 @@
+From: Michael Tretter <[email protected]>
+Date: Wed, 9 Jul 2025 15:04:10 +0200
+Subject: [PATCH] Add missing header PageIdentifier.h
+
+Otherwise the build fails with the following error message:
+
+       Source/WebKit/WebProcess/Storage/RemoteWorkerFrameLoaderClient.h:42:82: 
error: 'WebCore::PageIdentifier' has not been declared
+       
Source/WebKit/WebProcess/Storage/RemoteWorkerFrameLoaderClient.cpp:34:1: error: 
no declaration matches 
'WebKit::RemoteWorkerFrameLoaderClient::RemoteWorkerFrameLoaderClient(WebCore::FrameLoader&,
 WebKit::WebPageProxyIdentifier, WebCore::PageIdentifier, const WTF::String&)'
+       Source/WebKit/WebProcess/Storage/RemoteWorkerFrameLoaderClient.h:40:7: 
note: candidates are: 
'WebKit::RemoteWorkerFrameLoaderClient::RemoteWorkerFrameLoaderClient(WebKit::RemoteWorkerFrameLoaderClient&&)'
+       Source/WebKit/WebProcess/Storage/RemoteWorkerFrameLoaderClient.h:40:7: 
note: 
'WebKit::RemoteWorkerFrameLoaderClient::RemoteWorkerFrameLoaderClient(const 
WebKit::RemoteWorkerFrameLoaderClient&)'
+       Source/WebKit/WebProcess/Storage/RemoteWorkerFrameLoaderClient.h:42:5: 
note: 
'WebKit::RemoteWorkerFrameLoaderClient::RemoteWorkerFrameLoaderClient(WebCore::FrameLoader&,
 WebKit::WebPageProxyIdentifier, int, const WTF::String&)'
+       Source/WebKit/WebProcess/Storage/RemoteWorkerFrameLoaderClient.h:40:7: 
note: 'class WebKit::RemoteWorkerFrameLoaderClient' defined here
+---
+ Source/WebKit/WebProcess/Storage/RemoteWorkerFrameLoaderClient.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Source/WebKit/WebProcess/Storage/RemoteWorkerFrameLoaderClient.h 
b/Source/WebKit/WebProcess/Storage/RemoteWorkerFrameLoaderClient.h
+index ca2598c047ae..08923aec5944 100644
+--- a/Source/WebKit/WebProcess/Storage/RemoteWorkerFrameLoaderClient.h
++++ b/Source/WebKit/WebProcess/Storage/RemoteWorkerFrameLoaderClient.h
+@@ -26,6 +26,7 @@
+ #pragma once
+ 
+ #include "WebPageProxyIdentifier.h"
++#include <WebCore/PageIdentifier.h>
+ #include <WebCore/EmptyFrameLoaderClient.h>
+ #include <WebCore/ScriptExecutionContextIdentifier.h>
+ 
diff --git a/patches/wpewebkit-2.49.3/series b/patches/wpewebkit-2.49.3/series
new file mode 100644
index 000000000000..69617ed41c5d
--- /dev/null
+++ b/patches/wpewebkit-2.49.3/series
@@ -0,0 +1,5 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-Unified-build-fix.-Remove-when-fixed-upstream.patch
+0002-Add-missing-header-PageIdentifier.h.patch
+# 97f2dbe9b3674b5a71d154ce895a1a6b  - git-ptx-patches magic
diff --git a/rules/wpewebkit.in b/rules/wpewebkit.in
index 4b5de8822029..a4d29af7d1d9 100644
--- a/rules/wpewebkit.in
+++ b/rules/wpewebkit.in
@@ -24,9 +24,11 @@ menuconfig WPEWEBKIT
        select HARFBUZZ
        select HARFBUZZ_ICU
        select GLIB_NETWORKING if RUNTIME
+       select LIBDRM
        select LIBJPEG
        select LIBWEBP
        select LIBWEBP_DEMUX
+       select LIBWEBP_MUX
        select SQLITE
        select ZLIB
        select LIBPNG
@@ -40,6 +42,7 @@ menuconfig WPEWEBKIT
        select LIBEPOXY
        select LIBGCRYPT
        select LIBTASN1
+       select WPEWEBKIT_VIDEO  # Build with ENABLE_VIDEO=0 is broken
        select OPENSSL                          if WPEWEBKIT_WEBRTC
        select GSTREAMER1                       if WPEWEBKIT_VIDEO || 
WPEWEBKIT_AUDIO
        select GST_PLUGINS_BASE1                if WPEWEBKIT_VIDEO || 
WPEWEBKIT_AUDIO
diff --git a/rules/wpewebkit.make b/rules/wpewebkit.make
index 3766efa2f9f3..5ee3057ac88d 100644
--- a/rules/wpewebkit.make
+++ b/rules/wpewebkit.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_WPEWEBKIT) += wpewebkit
 #
 # Paths and names
 #
-WPEWEBKIT_VERSION      := 2.42.5
-WPEWEBKIT_MD5          := d4bfd427199ded5a6fd91d7080290751
+WPEWEBKIT_VERSION      := 2.49.3
+WPEWEBKIT_MD5          := 3a254344411ca8ea36fbb03d6c478e91
 WPEWEBKIT              := wpewebkit-$(WPEWEBKIT_VERSION)
 WPEWEBKIT_SUFFIX       := tar.xz
 WPEWEBKIT_URL          := 
https://wpewebkit.org/releases/$(WPEWEBKIT).$(WPEWEBKIT_SUFFIX)
@@ -37,47 +37,51 @@ WPEWEBKIT_CONF_OPT  := \
        -DCMAKE_BUILD_TYPE=Release \
        -DANALYZERS=OFF \
        -DDEBUG_FISSION=OFF \
-       -DENABLE_ACCESSIBILITY=OFF \
+       -DDEVELOPER_MODE_FATAL_WARNINGS=OFF \
+       -DENABLE_ASSERTS=OFF \
        -DENABLE_BUBBLEWRAP_SANDBOX=OFF \
        -DENABLE_DOCUMENTATION=OFF \
        -DENABLE_ENCRYPTED_MEDIA=OFF \
-       -DENABLE_GAMEPAD=OFF \
        -DENABLE_INTROSPECTION=OFF \
        -DENABLE_JAVASCRIPTCORE=ON \
        -DENABLE_JOURNALD_LOG=$(call ptx/onoff,PTXCONF_WPEWEBKIT_JOURNALD) \
        -DENABLE_PDFJS=ON \
+       -DENABLE_SPEECH_SYNTHESIS=OFF \
        -DENABLE_VIDEO=$(call ptx/onoff,PTXCONF_WPEWEBKIT_VIDEO) \
        -DENABLE_WEBCORE=ON \
        -DENABLE_WEBDRIVER=$(call ptx/onoff,PTXCONF_WPEWEBKIT_WEBDRIVER) \
        -DENABLE_WEBKIT=ON \
        -DENABLE_WEB_AUDIO=$(call ptx/onoff,PTXCONF_WPEWEBKIT_AUDIO) \
-       -DENABLE_WEB_CRYPTO=ON \
        -DENABLE_WPE_1_1_API=OFF \
+       -DENABLE_WPE_PLATFORM=OFF \
+       -DENABLE_WPE_PLATFORM_DRM=OFF \
+       -DENABLE_WPE_PLATFORM_HEADLESS=OFF \
+       -DENABLE_WPE_PLATFORM_WAYLAND=OFF \
        -DENABLE_WPE_QT_API=$(call ptx/onoff,PTXCONF_WPEWEBKIT_QT) \
        -DENABLE_XSLT=ON \
        -DGCC_OFFLINEASM_SOURCE_MAP=OFF \
        -DPORT=WPE \
        
-DPYTHON_EXECUTABLE=$(PTXDIST_SYSROOT_HOST)/usr/lib/wrapper/$(SYSTEMPYTHON3) \
        -DSHOULD_INSTALL_JS_SHELL=OFF \
-       -DSHOW_BINDINGS_GENERATION_PROGRESS=ON \
+       -DSHOW_BINDINGS_GENERATION_PROGRESS=OFF \
+       -DUSER_AGENT_BRANDING= \
        -DUSE_64KB_PAGE_BLOCK=OFF \
        -DUSE_APPLE_ICU=OFF \
+       -DUSE_ATK=OFF \
        -DUSE_AVIF=OFF \
+       -DUSE_CXX_STDLIB_ASSERTIONS=OFF \
+       -DUSE_FLITE=OFF \
        -DUSE_GBM=ON \
        -DUSE_GSTREAMER_TRANSCODER=OFF \
        -DUSE_GSTREAMER_WEBRTC=$(call ptx/onoff,PTXCONF_WPEWEBKIT_WEBRTC) \
        -DUSE_JPEGXL=OFF \
        -DUSE_LCMS=OFF \
-       -DUSE_OPENJPEG=OFF \
-       -DUSE_SOUP2=OFF \
+       -DUSE_LIBBACKTRACE=OFF \
+       -DUSE_LIBDRM=ON \
+       -DUSE_QT6=OFF \
+       -DUSE_SKIA_OPENTYPE_SVG=OFF \
        -DUSE_THIN_ARCHIVES=ON \
-       -DUSE_WESTEROS_SINK=OFF \
-       -DUSE_WOFF2=OFF \
-       -DUSE_WPEWEBKIT_PLATFORM_AMLOGIC=OFF \
-       -DUSE_WPEWEBKIT_PLATFORM_BCM_NEXUS=OFF \
-       -DUSE_WPEWEBKIT_PLATFORM_BROADCOM=OFF \
-       -DUSE_WPEWEBKIT_PLATFORM_RPI=OFF \
-       -DUSE_WPEWEBKIT_PLATFORM_WESTEROS=OFF
+       -DUSE_WOFF2=OFF
 
 WPEWEBKIT_SYSTEM_MALLOC := OFF
 ifdef PTXCONF_WPEWEBKIT_QT
@@ -95,10 +99,14 @@ WPEWEBKIT_CONF_OPT  += \
        -DENABLE_MEDIA_SOURCE=ON \
        -DENABLE_MEDIA_STREAM=$(call ptx/onoff,PTXCONF_WPEWEBKIT_WEBRTC) \
        -DENABLE_REMOTE_INSPECTOR=ON \
+       -DENABLE_SMOOTH_SCROLLING=OFF \
        -DENABLE_WEBXR=OFF \
+       -DENABLE_WEB_CODECS=OFF \
        -DENABLE_WEB_RTC=$(call ptx/onoff,PTXCONF_WPEWEBKIT_WEBRTC) \
-       -DUSE_GSTREAMER_GL=$(call ptx/onoff,PTXCONF_WPEWEBKIT_VIDEO) \
-       -DUSE_SYSTEM_MALLOC=$(WPEWEBKIT_SYSTEM_MALLOC)
+       -DUSE_GSTREAMER_GL=OFF \
+       -DUSE_SYSPROF_CAPTURE=OFF \
+       -DUSE_SYSTEM_MALLOC=$(WPEWEBKIT_SYSTEM_MALLOC) \
+       -DUSE_SYSTEM_SYSPROF_CAPTURE=OFF
 
 ifdef PTXCONF_WPEWEBKIT_ENABLE_LOGGING
 WPEWEBKIT_CXXFLAGS     := -DLOG_DISABLED=0 -DENABLE_TREE_DEBUGGING=1
-- 
2.39.5


Reply via email to