Update cmake options for 2.52.4: - Remove USE_GSTREAMER_TRANSCODER: option removed from cmake - Add ENABLE_WPE_LEGACY_API=ON: explicit for wpebackend-fdo path - Add USE_GSTREAMER driven by PTXCONF_WPEWEBKIT_AUDIO: new master multimedia switch; setting it OFF cleanly disables all GStreamer features without enumerating each one - Add USE_LIBHYPHEN=OFF: new option, no libhyphen package in ptxdist - Add ENABLE_GPU_PROCESS=OFF (private): keep single-process rendering path suited for embedded use with wpebackend-fdo - Drop Qt support: Qt5 API was removed upstream; Qt6 support to be added separately when needed; remove WPEWEBKIT_SYSTEM_MALLOC block and WPEWEBKIT_QT config along with it
Update wpewebkit.in: - Add select LIBXKBCOMMON: XkbCommon is now an unconditional find_package(REQUIRED) in OptionsWPE.cmake - Remove select WPEWEBKIT_QT and Qt5/Qt6 selects Update license: - Expand WPEWEBKIT_LICENSE from BSD-2-Clause to full SPDX expression covering all license files present in the source tree - Add WPEWEBKIT_LICENSE_FILES with paths and md5 hashes for Source/WebCore, Source/JavaScriptCore and Source/WTF Add cross-compilation fix patch: PlatformWPE: link GLib::GioUnix to propagate gio-unix-2.0 includes Signed-off-by: Artur Wiebe <[email protected]> --- ...uild-fix.-Remove-when-fixed-upstream.patch | 20 ---------- ...-Add-missing-header-PageIdentifier.h.patch | 28 ------------- patches/wpewebkit-2.49.3/series | 5 --- ...x-to-propagate-gio-unix-2.0-includes.patch | 32 +++++++++++++++ patches/wpewebkit-2.52.4/series | 1 + rules/wpewebkit.in | 9 +---- rules/wpewebkit.make | 39 +++++++++---------- 7 files changed, 52 insertions(+), 82 deletions(-) delete mode 100644 patches/wpewebkit-2.49.3/0001-Unified-build-fix.-Remove-when-fixed-upstream.patch delete mode 100644 patches/wpewebkit-2.49.3/0002-Add-missing-header-PageIdentifier.h.patch delete mode 100644 patches/wpewebkit-2.49.3/series create mode 100644 patches/wpewebkit-2.52.4/0002-PlatformWPE-link-GLib-GioUnix-to-propagate-gio-unix-2.0-includes.patch create mode 100644 patches/wpewebkit-2.52.4/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 deleted file mode 100644 index 70598993a..000000000 --- a/patches/wpewebkit-2.49.3/0001-Unified-build-fix.-Remove-when-fixed-upstream.patch +++ /dev/null @@ -1,20 +0,0 @@ -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 deleted file mode 100644 index dc8d3695a..000000000 --- a/patches/wpewebkit-2.49.3/0002-Add-missing-header-PageIdentifier.h.patch +++ /dev/null @@ -1,28 +0,0 @@ -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 deleted file mode 100644 index 69617ed41..000000000 --- a/patches/wpewebkit-2.49.3/series +++ /dev/null @@ -1,5 +0,0 @@ -# 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/patches/wpewebkit-2.52.4/0002-PlatformWPE-link-GLib-GioUnix-to-propagate-gio-unix-2.0-includes.patch b/patches/wpewebkit-2.52.4/0002-PlatformWPE-link-GLib-GioUnix-to-propagate-gio-unix-2.0-includes.patch new file mode 100644 index 000000000..282088206 --- /dev/null +++ b/patches/wpewebkit-2.52.4/0002-PlatformWPE-link-GLib-GioUnix-to-propagate-gio-unix-2.0-includes.patch @@ -0,0 +1,32 @@ +From: Artur Wiebe <[email protected]> +Subject: [PATCH] WebKit/WPE: fix cross-compilation by declaring GLib::GioUnix dependency + +Several GLib platform files compiled as part of the WebKit library include +gio-unix-2.0 headers (gunixfdmessage.h, gunixconnection.h, gunixfdlist.h, +gunixinputstream.h, gdesktopappinfo.h), but the WebKit cmake target never +declares GLib::GioUnix as a dependency. The gio-unix-2.0 include directory +is therefore never passed to the compiler for these files. + +In native builds this goes unnoticed: pkg-config calls made while detecting +other targets leak the gio-unix-2.0 include path into global cmake state, +making it accidentally available everywhere. In a cross build the sysroot is +isolated and include paths are strictly scoped to declared dependencies, so +the missing declaration causes a build failure. + +Fix by adding GLib::GioUnix to WebKit_LIBRARIES so cmake correctly propagates +the include directory to all files compiled as part of the WebKit target. + +--- + Source/WebKit/PlatformWPE.cmake | 1 + + 1 file changed, 1 insertion(+) + +--- a/Source/WebKit/PlatformWPE.cmake 2026-06-24 00:00:00.000000000 +0000 ++++ b/Source/WebKit/PlatformWPE.cmake 2026-06-24 00:00:00.000000000 +0000 +@@ -467,6 +467,7 @@ + ) + + list(APPEND WebKit_LIBRARIES ++ GLib::GioUnix + GLib::Module + Soup3::Soup3 + ) diff --git a/patches/wpewebkit-2.52.4/series b/patches/wpewebkit-2.52.4/series new file mode 100644 index 000000000..444f4f1b2 --- /dev/null +++ b/patches/wpewebkit-2.52.4/series @@ -0,0 +1 @@ +0002-PlatformWPE-link-GLib-GioUnix-to-propagate-gio-unix-2.0-includes.patch diff --git a/rules/wpewebkit.in b/rules/wpewebkit.in index a4d29af7d..507ba3d1f 100644 --- a/rules/wpewebkit.in +++ b/rules/wpewebkit.in @@ -25,6 +25,7 @@ menuconfig WPEWEBKIT select HARFBUZZ_ICU select GLIB_NETWORKING if RUNTIME select LIBDRM + select LIBXKBCOMMON select LIBJPEG select LIBWEBP select LIBWEBP_DEMUX @@ -42,7 +43,6 @@ 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 @@ -77,18 +77,12 @@ menuconfig WPEWEBKIT select GST_PLUGINS_BAD1_VIDEOPARSERS if WPEWEBKIT_VIDEO select GST_PLUGINS_BAD1_WEBRTC if WPEWEBKIT_WEBRTC select WPEBACKEND_FDO - select QT5 if WPEWEBKIT_QT - select QT5_MODULE_QTDECLARATIVE if WPEWEBKIT_QT select SYSTEMD if WPEWEBKIT_JOURNALD help WebPlatformForEmbedded port for the WebKit cross-platform web browser engine. if WPEWEBKIT -config WPEWEBKIT_QT - bool - prompt "Qt API" - config WPEWEBKIT_JOURNALD bool depends on INITMETHOD_SYSTEMD @@ -97,7 +91,6 @@ config WPEWEBKIT_JOURNALD config WPEWEBKIT_VIDEO bool - # fails to build without it select WPEWEBKIT_AUDIO prompt "video support" diff --git a/rules/wpewebkit.make b/rules/wpewebkit.make index 36d5259e2..12aa869af 100644 --- a/rules/wpewebkit.make +++ b/rules/wpewebkit.make @@ -14,14 +14,23 @@ PACKAGES-$(PTXCONF_WPEWEBKIT) += wpewebkit # # Paths and names # -WPEWEBKIT_VERSION := 2.49.3 -WPEWEBKIT_SHA256 := 52bfc6f424fd8728d71b0226f47b8cadba3d84f3fff218bb9e14c2e94ea89817 +WPEWEBKIT_VERSION := 2.52.4 +WPEWEBKIT_SHA256 := 01ca34cd7af880c038d35aa94482fee785a77db37b614c584475d7d43b3a2dc0 WPEWEBKIT := wpewebkit-$(WPEWEBKIT_VERSION) WPEWEBKIT_SUFFIX := tar.xz WPEWEBKIT_URL := https://wpewebkit.org/releases/$(WPEWEBKIT).$(WPEWEBKIT_SUFFIX) WPEWEBKIT_SOURCE := $(SRCDIR)/$(WPEWEBKIT).$(WPEWEBKIT_SUFFIX) WPEWEBKIT_DIR := $(BUILDDIR)/$(WPEWEBKIT) -WPEWEBKIT_LICENSE := BSD-2-Clause +WPEWEBKIT_LICENSE := BSD-2-Clause AND LGPL-2.0-only AND LGPL-2.0-or-later AND LGPL-2.1-only AND Apache-2.0 AND MIT +WPEWEBKIT_LICENSE_FILES := \ + file://Source/WebCore/LICENSE-APPLE;md5=4646f90082c40bcf298c285f8bab0b12 \ + file://Source/WebCore/LICENSE-LGPL-2;md5=36357ffde2b64ae177b2494445b79d21 \ + file://Source/WebCore/LICENSE-LGPL-2.1;md5=a778a33ef338abbaf8b8a7c36b6eec80 \ + file://Source/JavaScriptCore/COPYING.LIB;md5=d0c6d6397a5d84286dda758da57bd691 \ + file://Source/WTF/LICENSE-dragonbox.txt;md5=3c547640926850c04616148a7f87a223 \ + file://Source/WTF/LICENSE-libc++.txt;md5=7b3a0e1b99822669d630011defe9bfd9 \ + file://Source/WTF/LICENSE-LLVM.txt;md5=0bcd48c3bdfef0c9d9fd17726e4b7dab \ + file://Source/WTF/LICENSE-simde.txt;md5=b60de7db5b91c0b613d64e318151b0f1 # ---------------------------------------------------------------------------- # Prepare @@ -53,11 +62,12 @@ WPEWEBKIT_CONF_OPT := \ -DENABLE_WEBKIT=ON \ -DENABLE_WEB_AUDIO=$(call ptx/onoff,PTXCONF_WPEWEBKIT_AUDIO) \ -DENABLE_WPE_1_1_API=OFF \ + -DENABLE_WPE_LEGACY_API=ON \ -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_WPE_QT_API=OFF \ -DENABLE_XSLT=ON \ -DGCC_OFFLINEASM_SOURCE_MAP=OFF \ -DPORT=WPE \ @@ -72,29 +82,20 @@ WPEWEBKIT_CONF_OPT := \ -DUSE_CXX_STDLIB_ASSERTIONS=OFF \ -DUSE_FLITE=OFF \ -DUSE_GBM=ON \ - -DUSE_GSTREAMER_TRANSCODER=OFF \ + -DUSE_GSTREAMER=$(call ptx/onoff,PTXCONF_WPEWEBKIT_AUDIO) \ -DUSE_GSTREAMER_WEBRTC=$(call ptx/onoff,PTXCONF_WPEWEBKIT_WEBRTC) \ -DUSE_JPEGXL=OFF \ -DUSE_LCMS=OFF \ + -DUSE_LIBHYPHEN=OFF \ -DUSE_LIBBACKTRACE=OFF \ -DUSE_LIBDRM=ON \ - -DUSE_QT6=OFF \ -DUSE_SKIA_OPENTYPE_SVG=OFF \ -DUSE_THIN_ARCHIVES=ON \ -DUSE_WOFF2=OFF -WPEWEBKIT_SYSTEM_MALLOC := OFF -ifdef PTXCONF_WPEWEBKIT_QT -ifdef PTXCONF_ARCH_ARM64 -WPEWEBKIT_SYSTEM_MALLOC := ON -endif -ifdef PTXCONF_ARCH_X86_64 -WPEWEBKIT_SYSTEM_MALLOC := ON -endif -endif - # private options WPEWEBKIT_CONF_OPT += \ + -DENABLE_GPU_PROCESS=OFF \ -DENABLE_MEDIA_RECORDER=OFF \ -DENABLE_MEDIA_SOURCE=ON \ -DENABLE_MEDIA_STREAM=$(call ptx/onoff,PTXCONF_WPEWEBKIT_WEBRTC) \ @@ -105,7 +106,7 @@ WPEWEBKIT_CONF_OPT += \ -DENABLE_WEB_RTC=$(call ptx/onoff,PTXCONF_WPEWEBKIT_WEBRTC) \ -DUSE_GSTREAMER_GL=OFF \ -DUSE_SYSPROF_CAPTURE=OFF \ - -DUSE_SYSTEM_MALLOC=$(WPEWEBKIT_SYSTEM_MALLOC) \ + -DUSE_SYSTEM_MALLOC=OFF \ -DUSE_SYSTEM_SYSPROF_CAPTURE=OFF ifdef PTXCONF_WPEWEBKIT_ENABLE_LOGGING @@ -131,10 +132,6 @@ $(STATEDIR)/wpewebkit.targetinstall: @$(call install_tree, wpewebkit, 0, 0, -, /usr/lib/wpe-webkit-2.0) @$(call install_tree, wpewebkit, 0, 0, -, /usr/share/wpe-webkit-2.0) -ifdef PTXCONF_WPEWEBKIT_QT - @$(call install_tree, wpewebkit, 0, 0, -, /usr/lib/qt5/qml/org/wpewebkit) -endif - ifdef PTXCONF_WPEWEBKIT_WEBDRIVER @$(call install_copy, wpewebkit, 0, 0, 0755, -, /usr/bin/WPEWebDriver) endif -- 2.54.0
