* [Buildroot] [PATCH 0/2] package/wpewebkit: WPE Platform support
@ 2026-11-02 22:49 Joseph Telaak
2026-11-02 22:49 ` [Buildroot] [PATCH 1/2] package/wpewebkit: add missing libxkbcommon dependency Joseph Telaak
2026-11-02 22:49 ` [Buildroot] [PATCH 2/2] package/wpewebkit: add WPE Platform options Joseph Telaak
0 siblings, 2 replies; 7+ messages in thread
From: Joseph Telaak @ 2026-11-02 22:49 UTC (permalink / raw)
To: buildroot; +Cc: Adrian Perez de Castro
WPE WebKit 2.50 contains the newer WPE Platform API, but Buildroot
only builds the libwpe API. This series makes the libxkbcommon
dependency explicit (patch 1) and adds options for WPE Platform and
its DRM and Wayland platforms (patch 2).
Adrian, I have added you in Cc because your 2024 series "wpewebkit: do
not depend on wpebackend-fdo" touches the same WPEWEBKIT_DEPENDENCIES
line. Patch 1 is what that change needs on the libxkbcommon side.
Tested with utils/test-pkg, one toolchain per configuration:
- WPE Platform, headless only (glibc)
- DRM platform (musl, eudev)
- Wayland platform (glibc)
- WPE Platform disabled
- DRM and Wayland platforms with libmanette (glibc, systemd)
At runtime, on x86_64 with musl, a WPEView on the DRM platform renders
and page-flips through Mesa's i915 driver on an Intel GMA 3150. With
WPE Platform disabled, an existing i386 libwpe setup with a vendor WPE
backend runs as before.
While testing I found that wpewebkit fails to configure when
BR2_PACKAGE_SYSPROF is enabled: sysprof is built with
-Dinstall-static=false, so libsysprof-capture-4 is never installed.
That happens on master without this series, so I left sysprof out of
the last configuration above.
Joseph Telaak (2):
package/wpewebkit: add missing libxkbcommon dependency
package/wpewebkit: add WPE Platform options
package/wpewebkit/Config.in | 39 ++++++++++++++++++++++++++++++++++
package/wpewebkit/wpewebkit.mk | 26 ++++++++++++++++++++++-
2 files changed, 64 insertions(+), 1 deletion(-)
--
2.50.1 (Apple Git-155)
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 1/2] package/wpewebkit: add missing libxkbcommon dependency
2026-11-02 22:49 [Buildroot] [PATCH 0/2] package/wpewebkit: WPE Platform support Joseph Telaak
@ 2026-11-02 22:49 ` Joseph Telaak
2026-11-04 22:04 ` Thomas Petazzoni via buildroot
2026-11-02 22:49 ` [Buildroot] [PATCH 2/2] package/wpewebkit: add WPE Platform options Joseph Telaak
1 sibling, 1 reply; 7+ messages in thread
From: Joseph Telaak @ 2026-11-02 22:49 UTC (permalink / raw)
To: buildroot; +Cc: Adrian Perez de Castro
WPE WebKit always needs libxkbcommon: OptionsWPE.cmake has an
unconditional find_package(Libxkbcommon 0.4.0 REQUIRED). Today it is
only pulled in indirectly, through libwpe, which wpebackend-fdo
selects. That path goes away once wpebackend-fdo is optional, and
WebKit 2.52 can be built without libwpe at all
(ENABLE_WPE_LEGACY_API=OFF). The WPE Platform library added by the
next patch also links libxkbcommon itself.
Select it and add it to the dependencies directly.
Signed-off-by: Joseph Telaak <joseph@telaak.dev>
---
package/wpewebkit/Config.in | 1 +
package/wpewebkit/wpewebkit.mk | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/package/wpewebkit/Config.in b/package/wpewebkit/Config.in
index 91de3868..c624c697 100644
--- a/package/wpewebkit/Config.in
+++ b/package/wpewebkit/Config.in
@@ -54,6 +54,7 @@ config BR2_PACKAGE_WPEWEBKIT
select BR2_PACKAGE_LIBPNG
select BR2_PACKAGE_LIBSOUP3
select BR2_PACKAGE_LIBTASN1
+ select BR2_PACKAGE_LIBXKBCOMMON
select BR2_PACKAGE_LIBXSLT
select BR2_PACKAGE_WAYLAND
select BR2_PACKAGE_WAYLAND_PROTOCOLS
diff --git a/package/wpewebkit/wpewebkit.mk b/package/wpewebkit/wpewebkit.mk
index c424a3c4..ce4d1ad9 100644
--- a/package/wpewebkit/wpewebkit.mk
+++ b/package/wpewebkit/wpewebkit.mk
@@ -17,7 +17,7 @@ WPEWEBKIT_CPE_ID_VENDOR = wpewebkit
WPEWEBKIT_CPE_ID_PRODUCT = wpe_webkit
WPEWEBKIT_DEPENDENCIES = host-gperf host-python3 host-ruby host-unifdef \
harfbuzz icu jpeg libepoxy libgcrypt libgles libsoup3 libtasn1 \
- libpng libxslt wayland-protocols webp wpebackend-fdo
+ libpng libxkbcommon libxslt wayland-protocols webp wpebackend-fdo
WPEWEBKIT_CMAKE_BACKEND = ninja
--
2.50.1 (Apple Git-155)
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 2/2] package/wpewebkit: add WPE Platform options
2026-11-02 22:49 [Buildroot] [PATCH 0/2] package/wpewebkit: WPE Platform support Joseph Telaak
2026-11-02 22:49 ` [Buildroot] [PATCH 1/2] package/wpewebkit: add missing libxkbcommon dependency Joseph Telaak
@ 2026-11-02 22:49 ` Joseph Telaak
2026-11-04 22:09 ` Thomas Petazzoni via buildroot
1 sibling, 1 reply; 7+ messages in thread
From: Joseph Telaak @ 2026-11-02 22:49 UTC (permalink / raw)
To: buildroot; +Cc: Adrian Perez de Castro
WPE Platform is the newer embedding API of WPE WebKit: the application
creates a WPEDisplay and WebKit renders through it, without libwpe or
a WPE backend. In 2.50 it is only enabled by default in developer
mode, so add an option for it, with sub-options for the DRM and
Wayland platforms. The headless platform has no dependencies and is
always built.
WPE Platform uses libmanette for gamepads when it finds it, so build
libmanette first when it is enabled.
The DRM platform needs libinput and libudev. It also needs GBM and
libdrm, which the existing USE_GBM and USE_LIBDRM blocks handle. It
imports buffers for scanout with GBM format modifiers, which not every
GBM provider supports, so, like cog, it depends on
BR2_PACKAGE_LIBGBM_HAS_FEATURE_FORMAT_MODIFIER_PLANE_COUNT, the
closest feature symbol. It does not use gbm_bo_get_fd, so unlike cog
it does not need the DMA_BUF feature.
The Wayland platform selects wayland and wayland-protocols even though
wpewebkit itself selects them today: that is only for wpebackend-fdo,
and the Wayland platform needs them on its own.
Every WPE Platform display compiles an XKB keymap with libxkbcommon.
Without the xkeyboard-config data this fails and the application
crashes, so select xkeyboard-config.
Pass ENABLE_WPE_PLATFORM explicitly in both cases, as upstream
enables it by default starting with 2.54.
Signed-off-by: Joseph Telaak <joseph@telaak.dev>
---
package/wpewebkit/Config.in | 38 ++++++++++++++++++++++++++++++++++
package/wpewebkit/wpewebkit.mk | 24 +++++++++++++++++++++
2 files changed, 62 insertions(+)
diff --git a/package/wpewebkit/Config.in b/package/wpewebkit/Config.in
index c624c697..3b7ea4fc 100644
--- a/package/wpewebkit/Config.in
+++ b/package/wpewebkit/Config.in
@@ -86,6 +86,44 @@ comment "sandboxing supports needs a toolchain w/ headers >= 3.17"
depends on BR2_PACKAGE_LIBSECCOMP_ARCH_SUPPORTS
depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17
+config BR2_PACKAGE_WPEWEBKIT_WPE_PLATFORM
+ bool "WPE Platform API"
+ select BR2_PACKAGE_XKEYBOARD_CONFIG # runtime
+ help
+ Build the WPE Platform API, an alternative to libwpe and WPE
+ backends: the application creates a WPEDisplay (DRM, headless
+ or Wayland) and WebKit renders through it. The headless
+ platform is always included.
+
+ The libwpe API remains available.
+
+if BR2_PACKAGE_WPEWEBKIT_WPE_PLATFORM
+
+config BR2_PACKAGE_WPEWEBKIT_WPE_PLATFORM_DRM
+ bool "DRM platform"
+ depends on BR2_PACKAGE_HAS_LIBGBM
+ depends on BR2_PACKAGE_LIBGBM_HAS_FEATURE_FORMAT_MODIFIER_PLANE_COUNT
+ depends on BR2_PACKAGE_HAS_LIBUDEV # libinput
+ select BR2_PACKAGE_LIBDRM
+ select BR2_PACKAGE_LIBINPUT
+ help
+ Display directly through kernel mode-setting (KMS), without
+ a compositor, with input from libinput.
+
+comment "DRM platform needs GBM w/ format modifiers and libudev"
+ depends on !BR2_PACKAGE_HAS_LIBGBM || \
+ !BR2_PACKAGE_LIBGBM_HAS_FEATURE_FORMAT_MODIFIER_PLANE_COUNT || \
+ !BR2_PACKAGE_HAS_LIBUDEV
+
+config BR2_PACKAGE_WPEWEBKIT_WPE_PLATFORM_WAYLAND
+ bool "Wayland platform"
+ select BR2_PACKAGE_WAYLAND
+ select BR2_PACKAGE_WAYLAND_PROTOCOLS
+ help
+ Display as a client of a Wayland compositor.
+
+endif
+
config BR2_PACKAGE_WPEWEBKIT_MULTIMEDIA
bool "multimedia support"
depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS # gst1-libav
diff --git a/package/wpewebkit/wpewebkit.mk b/package/wpewebkit/wpewebkit.mk
index ce4d1ad9..f9266d1a 100644
--- a/package/wpewebkit/wpewebkit.mk
+++ b/package/wpewebkit/wpewebkit.mk
@@ -94,6 +94,30 @@ else
WPEWEBKIT_CONF_OPTS += -DENABLE_WEBDRIVER=OFF
endif
+ifeq ($(BR2_PACKAGE_WPEWEBKIT_WPE_PLATFORM),y)
+WPEWEBKIT_CONF_OPTS += \
+ -DENABLE_WPE_PLATFORM=ON \
+ -DENABLE_WPE_PLATFORM_HEADLESS=ON
+# Gamepad support uses libmanette when it is found
+ifeq ($(BR2_PACKAGE_LIBMANETTE),y)
+WPEWEBKIT_DEPENDENCIES += libmanette
+endif
+ifeq ($(BR2_PACKAGE_WPEWEBKIT_WPE_PLATFORM_DRM),y)
+WPEWEBKIT_CONF_OPTS += -DENABLE_WPE_PLATFORM_DRM=ON
+WPEWEBKIT_DEPENDENCIES += libinput libudev
+else
+WPEWEBKIT_CONF_OPTS += -DENABLE_WPE_PLATFORM_DRM=OFF
+endif
+ifeq ($(BR2_PACKAGE_WPEWEBKIT_WPE_PLATFORM_WAYLAND),y)
+WPEWEBKIT_CONF_OPTS += -DENABLE_WPE_PLATFORM_WAYLAND=ON
+WPEWEBKIT_DEPENDENCIES += wayland wayland-protocols
+else
+WPEWEBKIT_CONF_OPTS += -DENABLE_WPE_PLATFORM_WAYLAND=OFF
+endif
+else
+WPEWEBKIT_CONF_OPTS += -DENABLE_WPE_PLATFORM=OFF
+endif
+
ifeq ($(BR2_PACKAGE_FLITE),y)
WPEWEBKIT_CONF_OPTS += -DENABLE_SPEECH_SYNTHESIS=ON
WPEWEBKIT_DEPENDENCIES += flite
--
2.50.1 (Apple Git-155)
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [Buildroot] [PATCH 1/2] package/wpewebkit: add missing libxkbcommon dependency
2026-11-02 22:49 ` [Buildroot] [PATCH 1/2] package/wpewebkit: add missing libxkbcommon dependency Joseph Telaak
@ 2026-11-04 22:04 ` Thomas Petazzoni via buildroot
2026-11-05 0:21 ` Joseph Telaak
0 siblings, 1 reply; 7+ messages in thread
From: Thomas Petazzoni via buildroot @ 2026-11-04 22:04 UTC (permalink / raw)
To: Joseph Telaak; +Cc: buildroot, Adrian Perez de Castro
Hello Joseph,
Sorry for the silly questions, but I'm not super familiar with
wpewebkit.
On Mon, Nov 02, 2026 at 05:49:14PM -0500, Joseph Telaak wrote:
> WPE WebKit always needs libxkbcommon: OptionsWPE.cmake has an
> unconditional find_package(Libxkbcommon 0.4.0 REQUIRED). Today it is
> only pulled in indirectly, through libwpe, which wpebackend-fdo
> selects. That path goes away once wpebackend-fdo is optional, and
When does wpebackend-fdo becomes optional?
This patch doesn't make it optional, and neither does your PATCH 2/2.
> WebKit 2.52 can be built without libwpe at all
> (ENABLE_WPE_LEGACY_API=OFF). The WPE Platform library added by the
> next patch also links libxkbcommon itself.
>
> Select it and add it to the dependencies directly.
>
> Signed-off-by: Joseph Telaak <joseph@telaak.dev>
Overall, is this fixing an actual build issue, or it's for
consistency, and preparation for wpebackend-fdo becoming optional in a
feature version of wpewebkit, which would break the wpewebkit ->
wpebackend-fdo -> libwpe -> libxkbcommon that exists today?
Adrian: review from you appreciated :-)
Thanks for your feedback!
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Buildroot] [PATCH 2/2] package/wpewebkit: add WPE Platform options
2026-11-02 22:49 ` [Buildroot] [PATCH 2/2] package/wpewebkit: add WPE Platform options Joseph Telaak
@ 2026-11-04 22:09 ` Thomas Petazzoni via buildroot
2026-11-05 0:23 ` Joseph Telaak
0 siblings, 1 reply; 7+ messages in thread
From: Thomas Petazzoni via buildroot @ 2026-11-04 22:09 UTC (permalink / raw)
To: Joseph Telaak; +Cc: buildroot, Adrian Perez de Castro
On Mon, Nov 02, 2026 at 05:49:15PM -0500, Joseph Telaak wrote:
> WPE Platform is the newer embedding API of WPE WebKit: the application
> creates a WPEDisplay and WebKit renders through it, without libwpe or
> a WPE backend.
Again, silly questions from someone not familiar with wpewebkit: what
is "WPE backend" in this context, and how does "WPE backend" map to
what we have (or don't have) in Buildroot?
In Buildroot as far as I can see, wpewebkit always depends on
wpebackend-fdo, which depends on libwpe. Does this mean that we are so
far only using "libwpe" and never "WPE backend"?
> In 2.50 it is only enabled by default in developer
> mode, so add an option for it, with sub-options for the DRM and
> Wayland platforms. The headless platform has no dependencies and is
> always built.
>
> WPE Platform uses libmanette for gamepads when it finds it, so build
> libmanette first when it is enabled.
>
> The DRM platform needs libinput and libudev. It also needs GBM and
> libdrm, which the existing USE_GBM and USE_LIBDRM blocks handle. It
> imports buffers for scanout with GBM format modifiers, which not every
> GBM provider supports, so, like cog, it depends on
> BR2_PACKAGE_LIBGBM_HAS_FEATURE_FORMAT_MODIFIER_PLANE_COUNT, the
> closest feature symbol. It does not use gbm_bo_get_fd, so unlike cog
> it does not need the DMA_BUF feature.
So far, so good.
> The Wayland platform selects wayland and wayland-protocols even though
> wpewebkit itself selects them today: that is only for wpebackend-fdo,
> and the Wayland platform needs them on its own.
But if wayland/wayland-protocols are only for wpebackend-fdo, why
isn't wpebackend-fdo selecting them, instead of wpewebkit?
> Every WPE Platform display compiles an XKB keymap with libxkbcommon.
> Without the xkeyboard-config data this fails and the application
> crashes, so select xkeyboard-config.
>
> Pass ENABLE_WPE_PLATFORM explicitly in both cases, as upstream
> enables it by default starting with 2.54.
>
> Signed-off-by: Joseph Telaak <joseph@telaak.dev>
Otherwise, looks good to me. Probably no need to resend, just provide
a little bit more details on the questions asked on PATCH 1/2 and 2/2
and that should be good.
Adrian: here as well, your review would be appreciated :-)
Thanks a lot!
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Buildroot] [PATCH 1/2] package/wpewebkit: add missing libxkbcommon dependency
2026-11-04 22:04 ` Thomas Petazzoni via buildroot
@ 2026-11-05 0:21 ` Joseph Telaak
0 siblings, 0 replies; 7+ messages in thread
From: Joseph Telaak @ 2026-11-05 0:21 UTC (permalink / raw)
To: Thomas Petazzoni; +Cc: buildroot, Adrian Perez de Castro
Hello Thomas,
On Wed, Nov 04, 2026 at 11:04:01PM +0100, Thomas Petazzoni wrote:
> When does wpebackend-fdo becomes optional?
>
> This patch doesn't make it optional, and neither does your PATCH 2/2.
You're right, it doesn't, and that sentence should not be there.
Adrian's 2024 series ("package/wpewebkit: do not depend on
wpebackend-fdo") keeps libwpe, which selects libxkbcommon, so even that
would not break the chain. Please ignore the matching line in the
cover letter too.
> Overall, is this fixing an actual build issue, or it's for
> consistency, and preparation for wpebackend-fdo becoming optional in a
> feature version of wpewebkit, which would break the wpewebkit ->
> wpebackend-fdo -> libwpe -> libxkbcommon that exists today?
It does not fix a build issue: with 2.50.5, libxkbcommon always comes
in through wpebackend-fdo -> libwpe.
It is for consistency, and for 2.52. wpewebkit's CMake has an
unconditional find_package(Libxkbcommon 0.4.0 REQUIRED), and with PATCH
2/2 the WPE Platform library links libxkbcommon itself for its keymap.
In 2.52, libwpe becomes optional (ENABLE_WPE_LEGACY_API=OFF, with WPE
Platform enabled), but libxkbcommon is still required.
If you fix the log when applying, this would be accurate:
WPE WebKit requires libxkbcommon: OptionsWPE.cmake has an
unconditional find_package(Libxkbcommon 0.4.0 REQUIRED), and the WPE
Platform library added by the next patch links it for its keymap.
Today it is only pulled in indirectly, through wpebackend-fdo ->
libwpe, so this does not fix a build failure. It keeps the
dependency correct once that chain goes away: from 2.52, WebKit can
be built without libwpe (ENABLE_WPE_LEGACY_API=OFF) and still
requires libxkbcommon.
Select it and add it to the dependencies directly.
Thanks for the review,
Joseph
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Buildroot] [PATCH 2/2] package/wpewebkit: add WPE Platform options
2026-11-04 22:09 ` Thomas Petazzoni via buildroot
@ 2026-11-05 0:23 ` Joseph Telaak
0 siblings, 0 replies; 7+ messages in thread
From: Joseph Telaak @ 2026-11-05 0:23 UTC (permalink / raw)
To: Thomas Petazzoni; +Cc: buildroot, Adrian Perez de Castro
Hello Thomas,
On Wed, Nov 04, 2026 at 11:09:18PM +0100, Thomas Petazzoni wrote:
> Again, silly questions from someone not familiar with wpewebkit: what
> is "WPE backend" in this context, and how does "WPE backend" map to
> what we have (or don't have) in Buildroot?
>
> In Buildroot as far as I can see, wpewebkit always depends on
> wpebackend-fdo, which depends on libwpe. Does this mean that we are so
> far only using "libwpe" and never "WPE backend"?
We use both: wpebackend-fdo is the WPE backend.
libwpe is only an interface. WebKit is built against libwpe, and at run
time libwpe dlopen()s a backend library that implements it. The
application names the backend with wpe_loader_init(), or libwpe falls
back to libWPEBackend-default.so. The backend has one part in the web
process, where WebKit renders, and one in the application, which
receives the frames. wpebackend-fdo is the freedesktop.org backend: its
two parts talk over a private Wayland protocol, which carries the
rendered buffers. It is the only backend packaged in Buildroot; others
exist outside it (WPEBackend-rdk, vendor backends).
WPE Platform is the alternative to both. The DRM, Wayland and headless
platforms are built into WebKit itself (libWPEPlatform), so no backend
package is needed; other platforms can be added as modules. In 2.50
WebKit still links libwpe, since the libwpe API is still built, but an
application that uses WPE Platform does not go through it.
> But if wayland/wayland-protocols are only for wpebackend-fdo, why
> isn't wpebackend-fdo selecting them, instead of wpewebkit?
Good point, and my commit log is wrong there too. wpebackend-fdo
already selects wayland itself. It does not use wayland-protocols, as
it carries its own protocol files. In 2.50.5, WebKit only looks for
wayland and wayland-protocols for the WPE Platform Wayland platform
(and for its test tools and MiniBrowser, which Buildroot disables).
The selects on BR2_PACKAGE_WPEWEBKIT date back to the original package
in 2019, so they look like leftovers. That is why the Wayland platform
selects them on its own.
If you fix the log when applying, that paragraph could read:
The Wayland platform selects wayland and wayland-protocols itself:
WebKit only uses them for this platform. The main wpewebkit symbol
also selects them today, but nothing needs them there.
Adrian, do you know of anything that still needs these selects? If
not, I can send a separate patch to drop them, and wayland-protocols
from WPEWEBKIT_DEPENDENCIES.
Thanks,
Joseph
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-11-05 0:23 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-02 22:49 [Buildroot] [PATCH 0/2] package/wpewebkit: WPE Platform support Joseph Telaak
2026-11-02 22:49 ` [Buildroot] [PATCH 1/2] package/wpewebkit: add missing libxkbcommon dependency Joseph Telaak
2026-11-04 22:04 ` Thomas Petazzoni via buildroot
2026-11-05 0:21 ` Joseph Telaak
2026-11-02 22:49 ` [Buildroot] [PATCH 2/2] package/wpewebkit: add WPE Platform options Joseph Telaak
2026-11-04 22:09 ` Thomas Petazzoni via buildroot
2026-11-05 0:23 ` Joseph Telaak
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox