All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Devoogdt <thomas@devoogdt.com>
To: buildroot@buildroot.org
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	Thomas Devoogdt <thomas.devoogdt@barco.com>
Subject: [Buildroot] [PATCH v1 2/2] package/weston: bump to 15.0.0
Date: Fri, 17 Apr 2026 16:22:44 +0200	[thread overview]
Message-ID: <20260417142244.18803-2-thomas@devoogdt.com> (raw)
In-Reply-To: <20260417142244.18803-1-thomas@devoogdt.com>

From: Thomas Devoogdt <thomas.devoogdt@barco.com>

Announcement:

- 14.0.91: https://lore.freedesktop.org/wayland-devel/aUkQG3KWNC3drDYd@xpredator/T/#u
- 14.0.92: https://lore.freedesktop.org/wayland-devel/aWUJ7MMZmM5yrhSx@xpredator/T/#u
- 14.0.93: https://lore.freedesktop.org/wayland-devel/aW3jJBLBT_UXv1RT@xpredator/T/#u
- 14.0.94: https://lore.freedesktop.org/wayland-devel/aXcyB9n8QaRyFRxw@xpredator/T/#u
- 14.0.95: https://lore.freedesktop.org/wayland-devel/aYHCEa_-Q_v16WNn@xpredator/T/#u
- 14.0.96: https://lore.freedesktop.org/wayland-devel/aY9Vp5A3S-FpQbjC@xpredator/T/#u
- 14.0.97: https://lore.freedesktop.org/wayland-devel/aY9gbvuzD41IaNfo@xpredator/T/#u
- 15.0.0:  https://lore.freedesktop.org/wayland-devel/aZbDU-xtVMLhB0wD@xpredator/T/#u

Changes:

- Support for renderer-vulkan, and shell-lua has been added.

- Some features, drm-screencast-vaapi, shell-fullscreen, and screenshare
  are now deprecated, but kept for this release.

- 0001-build-Allow-libdisplay-info-0.3.0.patch is dropped as it is upstream.

- 0001-vulkan-renderer-guard-surface-output-creation-with-b.patch has been added
  to fix a dependency on <xcb/xcb.h>, which is already upstream.

Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
---
 ...01-build-Allow-libdisplay-info-0.3.0.patch |  37 -----
 ...guard-surface-output-creation-with-b.patch | 151 ++++++++++++++++++
 package/weston/Config.in                      |  17 ++
 package/weston/weston.hash                    |   6 +-
 package/weston/weston.mk                      |  28 +++-
 5 files changed, 192 insertions(+), 47 deletions(-)
 delete mode 100644 package/weston/0001-build-Allow-libdisplay-info-0.3.0.patch
 create mode 100644 package/weston/0001-vulkan-renderer-guard-surface-output-creation-with-b.patch

diff --git a/package/weston/0001-build-Allow-libdisplay-info-0.3.0.patch b/package/weston/0001-build-Allow-libdisplay-info-0.3.0.patch
deleted file mode 100644
index d97d1a9bf41..00000000000
--- a/package/weston/0001-build-Allow-libdisplay-info-0.3.0.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 83b49400c1dfb72e3019267fd03f165d0bffec76 Mon Sep 17 00:00:00 2001
-From: Fiona Klute <fiona.klute@gmx.de>
-Date: Mon, 6 Oct 2025 15:20:26 +0200
-Subject: [PATCH] build: Allow libdisplay-info 0.3.0
-
-This is a backport of the change in upstream commit
-683eabb61ec43a270f2e3ed67c63bbe3754b1214 "build: Allow libdisplay-info 0.3.0"
-[1], applying the loosened version limit to the DRM backend only. The dependency
-definition was moved to the top level meson.build in [2], and the lower bound
-increased in [3].
-
-[1] https://gitlab.freedesktop.org/wayland/weston/-/commit/683eabb61ec43a270f2e3ed67c63bbe3754b1214
-[2] https://gitlab.freedesktop.org/wayland/weston/-/commit/76e659f45edd23a8b1b253a93316ec73c709bc71
-[3] https://gitlab.freedesktop.org/wayland/weston/-/commit/82c5b386d860a479ed5a157f4dde58ffe202b948
-
-Upstream: https://gitlab.freedesktop.org/wayland/weston/-/commit/683eabb61ec43a270f2e3ed67c63bbe3754b1214 (backported)
-Signed-off-by: Fiona Klute (WIWA) <fiona.klute@gmx.de>
----
- libweston/backend-drm/meson.build | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libweston/backend-drm/meson.build b/libweston/backend-drm/meson.build
-index 002669e6..a8f2ea59 100644
---- a/libweston/backend-drm/meson.build
-+++ b/libweston/backend-drm/meson.build
-@@ -4,7 +4,7 @@ endif
- 
- dep_libdisplay_info = dependency(
- 	'libdisplay-info',
--	version: ['>= 0.1.1', '< 0.3.0'],
-+	version: ['>= 0.1.1', '< 0.4.0'],
- 	fallback: ['display-info', 'di_dep'],
- 	default_options: [
- 		'werror=false',
--- 
-2.51.0
-
diff --git a/package/weston/0001-vulkan-renderer-guard-surface-output-creation-with-b.patch b/package/weston/0001-vulkan-renderer-guard-surface-output-creation-with-b.patch
new file mode 100644
index 00000000000..8d887303360
--- /dev/null
+++ b/package/weston/0001-vulkan-renderer-guard-surface-output-creation-with-b.patch
@@ -0,0 +1,151 @@
+From 60e0ec39183f932b7b4ba60070a5b2ac64b42d30 Mon Sep 17 00:00:00 2001
+From: Erico Nunes <nunes.erico@gmail.com>
+Date: Thu, 5 Mar 2026 17:29:06 +0100
+Subject: [PATCH] vulkan-renderer: guard surface output creation with backend
+ defines
+
+Fix compilation errors when compiling with x11 or wayland backends
+disabled or not available.
+
+Fixes: 8f56d03d ("libweston: Vulkan renderer")
+
+Upstream: https://gitlab.freedesktop.org/wayland/weston/-/commit/ba10e6d81462fc8628dd340ba9404e13745eae18
+Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
+Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
+---
+ .../vulkan-renderer-internal.h                | 17 ++++++++++----
+ libweston/renderer-vulkan/vulkan-renderer.c   | 22 +++++++++++++++----
+ 2 files changed, 31 insertions(+), 8 deletions(-)
+
+diff --git a/libweston/renderer-vulkan/vulkan-renderer-internal.h b/libweston/renderer-vulkan/vulkan-renderer-internal.h
+index aadfc6e4..f8604227 100644
+--- a/libweston/renderer-vulkan/vulkan-renderer-internal.h
++++ b/libweston/renderer-vulkan/vulkan-renderer-internal.h
+@@ -35,17 +35,21 @@
+ #include <stdbool.h>
+ #include <time.h>
+ 
+-#include <wayland-util.h>
+ #include <vulkan/vulkan.h>
+ #include "shared/helpers.h"
+ #include "libweston/libweston.h"
+ #include "libweston/libweston-internal.h"
+-#include <xcb/xcb.h>
+ 
+-#define VK_USE_PLATFORM_XCB_KHR
++#if defined(BUILD_WAYLAND_COMPOSITOR)
+ #define VK_USE_PLATFORM_WAYLAND_KHR
+ #include <vulkan/vulkan_wayland.h>
++#endif
++
++#if defined(BUILD_X11_COMPOSITOR)
++#define VK_USE_PLATFORM_XCB_KHR
++#include <xcb/xcb.h>
+ #include <vulkan/vulkan_xcb.h>
++#endif
+ 
+ #define MAX_NUM_IMAGES 5
+ #define MAX_CONCURRENT_FRAMES 2
+@@ -173,10 +177,15 @@ struct vulkan_renderer {
+ 	struct wl_list pipeline_list;
+ 	struct dmabuf_allocator *allocator;
+ 
++#if defined(BUILD_WAYLAND_COMPOSITOR)
+ 	PFN_vkCreateWaylandSurfaceKHR create_wayland_surface;
+-	PFN_vkCreateXcbSurfaceKHR create_xcb_surface;
+ 	PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR get_wayland_presentation_support;
++#endif
++
++#if defined(BUILD_X11_COMPOSITOR)
++	PFN_vkCreateXcbSurfaceKHR create_xcb_surface;
+ 	PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR get_xcb_presentation_support;
++#endif
+ 
+ 	PFN_vkGetImageMemoryRequirements2KHR get_image_memory_requirements2;
+ 	PFN_vkGetMemoryFdPropertiesKHR get_memory_fd_properties;
+diff --git a/libweston/renderer-vulkan/vulkan-renderer.c b/libweston/renderer-vulkan/vulkan-renderer.c
+index 9f701913..b15eff46 100644
+--- a/libweston/renderer-vulkan/vulkan-renderer.c
++++ b/libweston/renderer-vulkan/vulkan-renderer.c
+@@ -303,16 +303,20 @@ static const struct vulkan_extension_table vulkan_inst_ext_table[] = {
+ 		.name = VK_KHR_SURFACE_EXTENSION_NAME,
+ 		.flag = EXTENSION_KHR_SURFACE,
+ 	},
++#if defined(BUILD_WAYLAND_COMPOSITOR)
+ 	{
+ 		.name = VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME,
+ 		.flag = EXTENSION_KHR_WAYLAND_SURFACE,
+ 		.instance_dep = EXTENSION_KHR_SURFACE,
+ 	},
++#endif
++#if defined(BUILD_X11_COMPOSITOR)
+ 	{
+ 		.name = VK_KHR_XCB_SURFACE_EXTENSION_NAME,
+ 		.flag = EXTENSION_KHR_XCB_SURFACE,
+ 		.instance_dep = EXTENSION_KHR_SURFACE,
+ 	},
++#endif
+ };
+ 
+ /* Keep in sync with vulkan-renderer-internal.h. */
+@@ -3455,9 +3459,12 @@ vulkan_renderer_output_window_create_swapchain(struct weston_output *output,
+ 	struct vulkan_renderer *vr = get_renderer(ec);
+ 	struct vulkan_output_state *vo = get_output_state(output);
+ 	VkResult result;
+-	VkBool32 supported;
++	VkBool32 supported = 0;
+ 	assert(vulkan_instance_has(vr, EXTENSION_KHR_SURFACE));
+ 
++	vo->swapchain.surface = VK_NULL_HANDLE;
++
++#if defined(BUILD_WAYLAND_COMPOSITOR)
+ 	if (options->wayland_display && options->wayland_surface) {
+ 		assert(vulkan_instance_has(vr, EXTENSION_KHR_WAYLAND_SURFACE));
+ 
+@@ -3472,7 +3479,10 @@ vulkan_renderer_output_window_create_swapchain(struct weston_output *output,
+ 		result = vr->create_wayland_surface(vr->inst, &wayland_surface_create_info, NULL,
+ 						    &vo->swapchain.surface);
+ 		check_vk_success(result, "vkCreateWaylandSurfaceKHR");
+-	} else if (options->xcb_connection && options->xcb_window) {
++	}
++#endif
++#if defined(BUILD_X11_COMPOSITOR)
++	if (options->xcb_connection && options->xcb_window) {
+ 		assert(vulkan_instance_has(vr, EXTENSION_KHR_XCB_SURFACE));
+ 
+ 		supported = vr->get_xcb_presentation_support(vr->phys_dev, 0, options->xcb_connection, options->xcb_visualid);
+@@ -3486,9 +3496,9 @@ vulkan_renderer_output_window_create_swapchain(struct weston_output *output,
+ 		result = vr->create_xcb_surface(vr->inst, &xcb_surface_create_info, NULL,
+ 						&vo->swapchain.surface);
+ 		check_vk_success(result, "vkCreateXcbSurfaceKHR");
+-	} else {
+-		assert(0);
+ 	}
++#endif
++	assert(vo->swapchain.surface != VK_NULL_HANDLE);
+ 
+ 	vkGetPhysicalDeviceSurfaceSupportKHR(vr->phys_dev, 0, vo->swapchain.surface, &supported);
+ 	assert(supported);
+@@ -4190,15 +4200,19 @@ load_instance_proc(struct vulkan_renderer *vr, const char *func, void *proc_ptr)
+ static void
+ vulkan_renderer_setup_instance_extensions(struct vulkan_renderer *vr)
+ {
++#if defined(BUILD_WAYLAND_COMPOSITOR)
+ 	if (vulkan_instance_has(vr, EXTENSION_KHR_WAYLAND_SURFACE)) {
+ 		load_instance_proc(vr, "vkCreateWaylandSurfaceKHR", &vr->create_wayland_surface);
+ 		load_instance_proc(vr, "vkGetPhysicalDeviceWaylandPresentationSupportKHR", &vr->get_wayland_presentation_support);
+ 	}
++#endif
+ 
++#if defined(BUILD_X11_COMPOSITOR)
+ 	if (vulkan_instance_has(vr, EXTENSION_KHR_XCB_SURFACE)) {
+ 		load_instance_proc(vr, "vkCreateXcbSurfaceKHR", &vr->create_xcb_surface);
+ 		load_instance_proc(vr, "vkGetPhysicalDeviceXcbPresentationSupportKHR", &vr->get_xcb_presentation_support);
+ 	}
++#endif
+ }
+ 
+ static void
+-- 
+2.43.0
+
diff --git a/package/weston/Config.in b/package/weston/Config.in
index 614fef6bcc0..774b75d5fbd 100644
--- a/package/weston/Config.in
+++ b/package/weston/Config.in
@@ -144,6 +144,14 @@ comment "XWayland support needs a toolchain w/ threads, dynamic library"
 	depends on BR2_TOOLCHAIN_HAS_SYNC_4
 	depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
 
+config BR2_PACKAGE_WESTON_VULKAN
+	bool "Vulkan support"
+	depends on BR2_PACKAGE_HAS_LIBGBM
+	select BR2_PACKAGE_VULKAN_LOADER
+
+comment "Vulkan support needs gbm"
+	depends on !BR2_PACKAGE_HAS_LIBGBM
+
 # Weston needs at least one shell; this can be one of the bundled ones,
 # below, of from a third-party package, which should then select this.
 config BR2_PACKAGE_WESTON_HAS_SHELL
@@ -168,6 +176,15 @@ config BR2_PACKAGE_WESTON_SHELL_KIOSK
 	default y
 	select BR2_PACKAGE_WESTON_HAS_SHELL
 
+config BR2_PACKAGE_WESTON_SHELL_LUA
+	bool "lua shell"
+	default y
+	depends on BR2_PACKAGE_LUA_5_4
+	select BR2_PACKAGE_WESTON_HAS_SHELL
+
+comment "lua shell needs a Lua >= 5.4"
+	depends on !BR2_PACKAGE_LUA_5_4
+
 config BR2_PACKAGE_WESTON_SCREENSHARE
 	bool "screenshare"
 	default y
diff --git a/package/weston/weston.hash b/package/weston/weston.hash
index cd2a82508d4..24f0f08bab4 100644
--- a/package/weston/weston.hash
+++ b/package/weston/weston.hash
@@ -1,4 +1,4 @@
-# From https://lists.freedesktop.org/archives/wayland-devel/2025-April/044158.html
-sha256  b47216b3530da76d02a3a1acbf1846a9cd41d24caa86448f9c46f78f20b6e0ac  weston-14.0.2.tar.xz
-sha512  e8214ec893e6c3ae94eb3c92feba104b0201843e9143f726a3e9a4d396d02523c94da706c1348cf934bc339fb1a4bc1fecdb865f0ea914115fd346d9eda091f5  weston-14.0.2.tar.xz
+# From https://lore.freedesktop.org/wayland-devel/aZbDU-xtVMLhB0wD@xpredator/
+sha256  58c6186d29a5d2f0be0dec4882af71cc190a11da803f6ed1bf0b2c74120da973  weston-15.0.0.tar.xz
+sha512  1196db00b473f036ba290e1073729c2b9e29ac061d9687b30dfad14e3b139313d3ca9c8000838e1b9c39713e96a2c544ec05d80bafad0b8ea1d1f380befa250d  weston-15.0.0.tar.xz
 sha256  fdb65868f65d0fbdb05c2d3b779e10ce9969fa0c4b9262ba4f260e87086ab860  COPYING
diff --git a/package/weston/weston.mk b/package/weston/weston.mk
index 57869b7e63f..e160c89477d 100644
--- a/package/weston/weston.mk
+++ b/package/weston/weston.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-WESTON_VERSION = 14.0.2
+WESTON_VERSION = 15.0.0
 WESTON_SITE = https://gitlab.freedesktop.org/wayland/weston/-/releases/$(WESTON_VERSION)/downloads
 WESTON_SOURCE = weston-$(WESTON_VERSION).tar.xz
 WESTON_LICENSE = MIT
@@ -70,6 +70,13 @@ WESTON_CONF_OPTS += \
 	-Dbackend-pipewire=false
 endif
 
+ifeq ($(BR2_PACKAGE_WESTON_VULKAN),y)
+WESTON_CONF_OPTS += -Drenderer-vulkan=true
+WESTON_DEPENDENCIES += host-python-glslang libgbm vulkan-loader
+else
+WESTON_CONF_OPTS += -Drenderer-vulkan=false
+endif
+
 WESTON_CONF_OPTS += -Dsimple-clients=$(subst $(space),$(comma),$(strip $(WESTON_SIMPLE_CLIENTS)))
 
 ifeq ($(BR2_PACKAGE_WESTON_RDP),y)
@@ -115,10 +122,10 @@ WESTON_CONF_OPTS += -Dxwayland=false
 endif
 
 ifeq ($(BR2_PACKAGE_LIBVA),y)
-WESTON_CONF_OPTS += -Dbackend-drm-screencast-vaapi=true
+WESTON_CONF_OPTS += -Ddeprecated-backend-drm-screencast-vaapi=true
 WESTON_DEPENDENCIES += libva
 else
-WESTON_CONF_OPTS += -Dbackend-drm-screencast-vaapi=false
+WESTON_CONF_OPTS += -Ddeprecated-backend-drm-screencast-vaapi=false
 endif
 
 ifeq ($(BR2_PACKAGE_LCMS2),y)
@@ -149,9 +156,9 @@ WESTON_CONF_OPTS += -Dshell-desktop=false
 endif
 
 ifeq ($(BR2_PACKAGE_WESTON_SHELL_FULLSCREEN),y)
-WESTON_CONF_OPTS += -Dshell-fullscreen=true
+WESTON_CONF_OPTS += -Ddeprecated-shell-fullscreen=true
 else
-WESTON_CONF_OPTS += -Dshell-fullscreen=false
+WESTON_CONF_OPTS += -Ddeprecated-shell-fullscreen=false
 endif
 
 ifeq ($(BR2_PACKAGE_WESTON_SHELL_IVI),y)
@@ -166,10 +173,17 @@ else
 WESTON_CONF_OPTS += -Dshell-kiosk=false
 endif
 
+ifeq ($(BR2_PACKAGE_WESTON_SHELL_LUA),y)
+WESTON_DEPENDENCIES += lua
+WESTON_CONF_OPTS += -Dshell-lua=true
+else
+WESTON_CONF_OPTS += -Dshell-lua=false
+endif
+
 ifeq ($(BR2_PACKAGE_WESTON_SCREENSHARE),y)
-WESTON_CONF_OPTS += -Dscreenshare=true
+WESTON_CONF_OPTS += -Ddeprecated-screenshare=true
 else
-WESTON_CONF_OPTS += -Dscreenshare=false
+WESTON_CONF_OPTS += -Ddeprecated-screenshare=false
 endif
 
 ifeq ($(BR2_PACKAGE_WESTON_DEMO_CLIENTS),y)
-- 
2.43.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

  reply	other threads:[~2026-04-17 14:22 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-17 14:22 [Buildroot] [PATCH v1 1/2] package/wayland-protocols: bump to 1.48 Thomas Devoogdt
2026-04-17 14:22 ` Thomas Devoogdt [this message]
2026-04-17 16:54 ` Adrian Perez de Castro
2026-04-17 20:55 ` Julien Olivain via buildroot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260417142244.18803-2-thomas@devoogdt.com \
    --to=thomas@devoogdt.com \
    --cc=buildroot@buildroot.org \
    --cc=thomas.devoogdt@barco.com \
    --cc=thomas.petazzoni@bootlin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.