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
