* [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
* 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 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
* [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 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 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