mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
* [ptxdist] [PATCH 1/4] aml: version bump 0.3.0 -> 1.0.0
@ 2026-05-21 14:44 Philipp Zabel
  2026-05-21 14:44 ` [ptxdist] [PATCH 2/4] neatvnc: version bump 0.9.5 " Philipp Zabel
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Philipp Zabel @ 2026-05-21 14:44 UTC (permalink / raw)
  To: ptxdist; +Cc: Philipp Zabel

https://github.com/any1/aml/releases/tag/v1.0.0

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
---
 rules/aml.make | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/rules/aml.make b/rules/aml.make
index 0e4c7ac6c059..ffa61f0d3cd0 100644
--- a/rules/aml.make
+++ b/rules/aml.make
@@ -14,14 +14,15 @@ PACKAGES-$(PTXCONF_AML) += aml
 #
 # Paths and names
 #
-AML_VERSION	:= 0.3.0
-AML_SHA256	:= cba1ca1689d4031faf37bb7a184559106b6d2f462ae8890a9fa16e3022ca1eb0
+AML_VERSION	:= 1.0.0
+AML_SHA256	:= b2b8f743213af39f40e8bc611147d69e2ea9e010b9b19cb65246582338f28d96
 AML		:= aml-$(AML_VERSION)
 AML_SUFFIX	:= tar.gz
 AML_URL		:= https://github.com/any1/aml/archive/refs/tags/v$(AML_VERSION).$(AML_SUFFIX)
 AML_SOURCE	:= $(SRCDIR)/$(AML).$(AML_SUFFIX)
 AML_DIR		:= $(BUILDDIR)/$(AML)
 AML_LICENSE	:= ISC
+AML_LICENSE_FILES	:= file://COPYING;md5=e6f3cfaa39204b96e14b68b9d50d3e4e
 
 # ----------------------------------------------------------------------------
 # Prepare
-- 
2.47.3




^ permalink raw reply	[flat|nested] 8+ messages in thread

* [ptxdist] [PATCH 2/4] neatvnc: version bump 0.9.5 -> 1.0.0
  2026-05-21 14:44 [ptxdist] [PATCH 1/4] aml: version bump 0.3.0 -> 1.0.0 Philipp Zabel
@ 2026-05-21 14:44 ` Philipp Zabel
  2026-05-27 21:55   ` [ptxdist] [APPLIED] " Michael Olbrich
  2026-05-21 14:44 ` [ptxdist] [PATCH 3/4] wayvnc: version bump 0.9.1 -> 0.10.0 Philipp Zabel
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 8+ messages in thread
From: Philipp Zabel @ 2026-05-21 14:44 UTC (permalink / raw)
  To: ptxdist; +Cc: Philipp Zabel

https://github.com/any1/neatvnc/releases/tag/v1.0.0

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
---
 rules/neatvnc.make | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/rules/neatvnc.make b/rules/neatvnc.make
index 69544a3180fd..7f26bb79072c 100644
--- a/rules/neatvnc.make
+++ b/rules/neatvnc.make
@@ -14,14 +14,15 @@ PACKAGES-$(PTXCONF_NEATVNC) += neatvnc
 #
 # Paths and names
 #
-NEATVNC_VERSION	:= 0.9.5
-NEATVNC_SHA256	:= 8150a30bfbd350b046680650b52afcce5ae44d328cb396fb571c6f9b99811357
+NEATVNC_VERSION	:= 1.0.0
+NEATVNC_SHA256	:= 993dedc30e72981650770c04438e9759537e4677010e2dab5e792c39afe74601
 NEATVNC		:= neatvnc-$(NEATVNC_VERSION)
 NEATVNC_SUFFIX	:= tar.gz
 NEATVNC_URL	:= https://github.com/any1/neatvnc/archive/refs/tags/v$(NEATVNC_VERSION).$(NEATVNC_SUFFIX)
 NEATVNC_SOURCE	:= $(SRCDIR)/$(NEATVNC).$(NEATVNC_SUFFIX)
 NEATVNC_DIR	:= $(BUILDDIR)/$(NEATVNC)
 NEATVNC_LICENSE	:= ISC
+NEATVNC_LICENSE_FILES	:= file://COPYING;md5=94fc374e7174f41e3afe0f027ee59ff7
 
 # ----------------------------------------------------------------------------
 # Prepare
-- 
2.47.3




^ permalink raw reply	[flat|nested] 8+ messages in thread

* [ptxdist] [PATCH 3/4] wayvnc: version bump 0.9.1 -> 0.10.0
  2026-05-21 14:44 [ptxdist] [PATCH 1/4] aml: version bump 0.3.0 -> 1.0.0 Philipp Zabel
  2026-05-21 14:44 ` [ptxdist] [PATCH 2/4] neatvnc: version bump 0.9.5 " Philipp Zabel
@ 2026-05-21 14:44 ` Philipp Zabel
  2026-05-27 21:55   ` [ptxdist] [APPLIED] " Michael Olbrich
  2026-05-21 14:44 ` [ptxdist] [PATCH 4/4] weston: build with neatvnc/aml 1.0.0 Philipp Zabel
  2026-05-27 21:54 ` [ptxdist] [APPLIED] aml: version bump 0.3.0 -> 1.0.0 Michael Olbrich
  3 siblings, 1 reply; 8+ messages in thread
From: Philipp Zabel @ 2026-05-21 14:44 UTC (permalink / raw)
  To: ptxdist; +Cc: Philipp Zabel

https://github.com/any1/wayvnc/releases/tag/v0.10.0

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
---
 rules/wayvnc.make | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/rules/wayvnc.make b/rules/wayvnc.make
index 2163daed3061..ab3a9a272d92 100644
--- a/rules/wayvnc.make
+++ b/rules/wayvnc.make
@@ -14,14 +14,15 @@ PACKAGES-$(PTXCONF_WAYVNC) += wayvnc
 #
 # Paths and names
 #
-WAYVNC_VERSION	:= 0.9.1
-WAYVNC_SHA256	:= aaaca02d36e54ec6ecf457dc266251946d895ac91521fbabb3470c3c09b3753c
+WAYVNC_VERSION	:= 0.10.0
+WAYVNC_SHA256	:= fcfda018d0e07ec00a80071420c8cc2a75885dc6d5e55bb50a9b12353754338f
 WAYVNC		:= wayvnc-$(WAYVNC_VERSION)
 WAYVNC_SUFFIX	:= tar.gz
 WAYVNC_URL	:= https://github.com/any1/wayvnc/archive/refs/tags/v$(WAYVNC_VERSION).$(WAYVNC_SUFFIX)
 WAYVNC_SOURCE	:= $(SRCDIR)/$(WAYVNC).$(WAYVNC_SUFFIX)
 WAYVNC_DIR	:= $(BUILDDIR)/$(WAYVNC)
 WAYVNC_LICENSE	:= ISC
+WAYVNC_LICENSE_FILES	:= file://COPYING;md5=94fc374e7174f41e3afe0f027ee59ff7
 
 # ----------------------------------------------------------------------------
 # Prepare
-- 
2.47.3




^ permalink raw reply	[flat|nested] 8+ messages in thread

* [ptxdist] [PATCH 4/4] weston: build with neatvnc/aml 1.0.0
  2026-05-21 14:44 [ptxdist] [PATCH 1/4] aml: version bump 0.3.0 -> 1.0.0 Philipp Zabel
  2026-05-21 14:44 ` [ptxdist] [PATCH 2/4] neatvnc: version bump 0.9.5 " Philipp Zabel
  2026-05-21 14:44 ` [ptxdist] [PATCH 3/4] wayvnc: version bump 0.9.1 -> 0.10.0 Philipp Zabel
@ 2026-05-21 14:44 ` Philipp Zabel
  2026-05-27 21:55   ` [ptxdist] [APPLIED] " Michael Olbrich
  2026-05-27 21:54 ` [ptxdist] [APPLIED] aml: version bump 0.3.0 -> 1.0.0 Michael Olbrich
  3 siblings, 1 reply; 8+ messages in thread
From: Philipp Zabel @ 2026-05-21 14:44 UTC (permalink / raw)
  To: ptxdist; +Cc: Philipp Zabel

Update to the stable Neat VNC and aml APIs to allow building against
neatvnc 1.0.0 and aml 1.0.0.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
---
 ...ab-ci-Update-to-Neat-VNC-1.0.0-aml-1.patch | 340 ++++++++++++++++++
 patches/weston-15.0.1/series                  |   4 +
 2 files changed, 344 insertions(+)
 create mode 100644 patches/weston-15.0.1/0001-backend-vnc-gitlab-ci-Update-to-Neat-VNC-1.0.0-aml-1.patch
 create mode 100644 patches/weston-15.0.1/series

diff --git a/patches/weston-15.0.1/0001-backend-vnc-gitlab-ci-Update-to-Neat-VNC-1.0.0-aml-1.patch b/patches/weston-15.0.1/0001-backend-vnc-gitlab-ci-Update-to-Neat-VNC-1.0.0-aml-1.patch
new file mode 100644
index 000000000000..d8b51d7f27dc
--- /dev/null
+++ b/patches/weston-15.0.1/0001-backend-vnc-gitlab-ci-Update-to-Neat-VNC-1.0.0-aml-1.patch
@@ -0,0 +1,340 @@
+From: Philipp Zabel <p.zabel@pengutronix.de>
+Date: Mon, 31 Mar 2025 15:52:25 +0200
+Subject: [PATCH] backend-vnc, gitlab-ci: Update to Neat VNC 1.0.0, aml 1.0.0
+
+Update to Neat VNC 1.0.0 and aml 1.0.0, which promise stable API.
+
+Adapt to API changes:
+ - authentication API now wraps username/password into
+   credentials and can be asynchronous
+ - userdata get/setters are now type specific
+ - fbs have been renamed to frames, storing dimensions and damage
+ - nvnc_open() is split into nvnc_new() and nvnc_listen_tcp()
+ - nvnc_close() is now nvnc_del()
+
+Upstream-Status: Backport [https://gitlab.freedesktop.org/wayland/weston/-/commit/8a1c91e771312d1e0d0cd92495ef717402784dae]
+
+Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
+---
+ libweston/backend-vnc/meson.build |   4 +-
+ libweston/backend-vnc/vnc.c       | 110 ++++++++++++++++++++------------------
+ 2 files changed, 61 insertions(+), 53 deletions(-)
+
+diff --git a/libweston/backend-vnc/meson.build b/libweston/backend-vnc/meson.build
+index cf67c51cbf77..7dc278db3818 100644
+--- a/libweston/backend-vnc/meson.build
++++ b/libweston/backend-vnc/meson.build
+@@ -3,12 +3,12 @@ if not get_option('backend-vnc')
+ endif
+ 
+ config_h.set('BUILD_VNC_COMPOSITOR', '1')
+-dep_neatvnc = dependency('neatvnc', version: ['>= 0.7.0', '< 0.10.0'], required: false, fallback: ['neatvnc', 'neatvnc_dep'])
++dep_neatvnc = dependency('neatvnc', version: ['>= 1.0.0', '< 2.0.0'], required: false, fallback: ['neatvnc', 'neatvnc_dep'])
+ if not dep_neatvnc.found()
+ 	error('VNC backend requires neatvnc which was not found. Or, you can use \'-Dbackend-vnc=false\'.')
+ endif
+ 
+-dep_aml = dependency('aml', version: ['>= 0.3.0', '< 0.4.0'], required: false, fallback: ['aml', 'aml_dep'])
++dep_aml = dependency('aml1', version: ['>= 1.0.0', '< 2.0.0'], required: false, fallback: ['aml', 'aml_dep'])
+ if not dep_aml.found()
+ 	error('VNC backend requires libaml which was not found. Or, you can use \'-Dbackend-vnc=false\'.')
+ endif
+diff --git a/libweston/backend-vnc/vnc.c b/libweston/backend-vnc/vnc.c
+index 554143059e53..6c433d3de8ab 100644
+--- a/libweston/backend-vnc/vnc.c
++++ b/libweston/backend-vnc/vnc.c
+@@ -42,7 +42,6 @@
+ #include <unistd.h>
+ #include <xkbcommon/xkbcommon-keysyms.h>
+ #include <xkbcommon/xkbcommon.h>
+-#define AML_UNSTABLE_API 1
+ #include <aml.h>
+ #include <neatvnc.h>
+ #include <drm_fourcc.h>
+@@ -89,7 +88,7 @@ struct vnc_output {
+ 	struct wl_event_source *finish_frame_timer;
+ 	struct nvnc_display *display;
+ 
+-	struct nvnc_fb_pool *fb_pool;
++	struct nvnc_frame_pool *frame_pool;
+ 
+ 	struct wl_list peers;
+ 
+@@ -111,7 +110,7 @@ struct vnc_head {
+ 
+ struct vnc_buffer {
+ 	weston_renderbuffer_t rb;
+-	struct nvnc_fb *fb;
++	struct nvnc_frame *frame;
+ 	struct vnc_output *output;
+ };
+ 
+@@ -296,7 +295,7 @@ static void
+ vnc_handle_key_event(struct nvnc_client *client, uint32_t keysym,
+ 		     bool is_pressed)
+ {
+-	struct vnc_peer *peer = nvnc_get_userdata(client);
++	struct vnc_peer *peer = nvnc_client_get_userdata(client);
+ 	uint32_t key = 0;
+ 	bool needs_shift = false;
+ 	enum weston_key_state_update state_update;
+@@ -356,7 +355,7 @@ static void
+ vnc_handle_key_code_event(struct nvnc_client *client, uint32_t key,
+ 			  bool is_pressed)
+ {
+-	struct vnc_peer *peer = nvnc_get_userdata(client);
++	struct vnc_peer *peer = nvnc_client_get_userdata(client);
+ 	enum wl_keyboard_key_state state;
+ 	struct timespec time;
+ 
+@@ -403,7 +402,7 @@ static bool
+ vnc_handle_desktop_layout_event(struct nvnc_client *client,
+ 				const struct nvnc_desktop_layout *layout)
+ {
+-	struct vnc_peer *peer = nvnc_get_userdata(client);
++	struct vnc_peer *peer = nvnc_client_get_userdata(client);
+ 	struct vnc_output *output = peer->backend->output;
+ 	struct weston_mode new_mode;
+ 	uint16_t width = nvnc_desktop_layout_get_width(layout);
+@@ -427,7 +426,7 @@ static void
+ vnc_pointer_event(struct nvnc_client *client, uint16_t x, uint16_t y,
+ 		  enum nvnc_button_mask button_mask)
+ {
+-	struct vnc_peer *peer = nvnc_get_userdata(client);
++	struct vnc_peer *peer = nvnc_client_get_userdata(client);
+ 	struct vnc_output *output = peer->backend->output;
+ 	struct timespec time;
+ 	enum nvnc_button_mask changed_button_mask;
+@@ -482,23 +481,29 @@ vnc_pointer_event(struct nvnc_client *client, uint16_t x, uint16_t y,
+ 	notify_pointer_frame(peer->seat);
+ }
+ 
+-static bool
+-vnc_handle_auth(const char *username, const char *password, void *userdata)
++static void
++vnc_handle_auth(struct nvnc_auth_creds *creds, void *userdata)
+ {
++	const char *username = nvnc_auth_creds_get_username(creds);
++	const char *password = nvnc_auth_creds_get_password(creds);
+ 	struct passwd *pw = getpwnam(username);
+ 
+ 	if (!pw || pw->pw_uid != getuid()) {
+ 		weston_log("VNC: wrong user '%s'\n", username);
+-		return false;
++		nvnc_auth_creds_reject(creds, "Invalid username");
++		return;
+ 	}
+ 
+-	return weston_authenticate_user(username, password);
++	if (weston_authenticate_user(username, password))
++		nvnc_auth_creds_accept(creds);
++	else
++		nvnc_auth_creds_reject(creds, "Invalid password");
+ }
+ 
+ static void
+-vnc_client_cleanup(struct nvnc_client *client)
++vnc_client_cleanup(void *userdata)
+ {
+-	struct vnc_peer *peer = nvnc_get_userdata(client);
++	struct vnc_peer *peer = userdata;
+ 	struct vnc_output *output = peer->backend->output;
+ 
+ 	wl_list_remove(&peer->link);
+@@ -548,7 +553,7 @@ vnc_output_update_cursor(struct vnc_output *output)
+ 	pixman_region32_t damage;
+ 	struct weston_buffer *buffer;
+ 	struct weston_surface *cursor_surface;
+-	struct nvnc_fb *fb;
++	struct nvnc_frame *frame;
+ 	uint8_t *src, *dst;
+ 	int i;
+ 
+@@ -565,12 +570,11 @@ vnc_output_update_cursor(struct vnc_output *output)
+ 	cursor_surface = output->cursor_surface;
+ 	buffer = cursor_surface->buffer_ref.buffer;
+ 
+-	fb = nvnc_fb_new(buffer->width, buffer->height, DRM_FORMAT_ARGB8888,
+-			 buffer->width);
+-	assert(fb);
++	frame = nvnc_frame_new(buffer->width, buffer->height, DRM_FORMAT_ARGB8888, buffer->width);
++	assert(frame);
+ 
+ 	src = wl_shm_buffer_get_data(buffer->shm_buffer);
+-	dst = nvnc_fb_get_addr(fb);
++	dst = nvnc_frame_get_addr(frame);
+ 
+ 	wl_shm_buffer_begin_access(buffer->shm_buffer);
+ 	for (i = 0; i < buffer->height; i++)
+@@ -578,9 +582,8 @@ vnc_output_update_cursor(struct vnc_output *output)
+ 		       4 * buffer->width);
+ 	wl_shm_buffer_end_access(buffer->shm_buffer);
+ 
+-	nvnc_set_cursor(backend->server, fb, buffer->width, buffer->height,
+-			pointer->hotspot.c.x, pointer->hotspot.c.y, true);
+-	nvnc_fb_unref(fb);
++	nvnc_set_cursor(backend->server, frame, pointer->hotspot.c.x, pointer->hotspot.c.y, true);
++	nvnc_frame_unref(frame);
+ }
+ 
+ static void
+@@ -682,16 +685,16 @@ vnc_rb_discarded_cb(weston_renderbuffer_t rb, void *data)
+ {
+ 	struct vnc_buffer *buffer = (struct vnc_buffer *) data;
+ 
+-	assert(nvnc_get_userdata(buffer->fb) == buffer);
++	assert(nvnc_frame_get_userdata(buffer->frame) == buffer);
+ 
+-	nvnc_set_userdata(buffer->fb, NULL, NULL);
++	nvnc_frame_set_userdata(buffer->frame, NULL, NULL);
+ 	vnc_buffer_destroy(buffer);
+ 
+ 	return true;
+ }
+ 
+ static struct vnc_buffer *
+-vnc_buffer_create(struct nvnc_fb* fb, struct vnc_output *output)
++vnc_buffer_create(struct nvnc_frame* frame, struct vnc_output *output)
+ {
+ 	const struct pixel_format_info *pfmt =
+ 		pixel_format_get_info(DRM_FORMAT_XRGB8888);
+@@ -699,10 +702,10 @@ vnc_buffer_create(struct nvnc_fb* fb, struct vnc_output *output)
+ 	struct vnc_buffer *buffer = xmalloc(sizeof *buffer);
+ 
+ 	buffer->rb = rdr->create_renderbuffer(&output->base, pfmt,
+-					      nvnc_fb_get_addr(fb),
++					      nvnc_frame_get_addr(frame),
+ 					      output->base.current_mode->width * 4,
+ 					      vnc_rb_discarded_cb, buffer);
+-	buffer->fb = fb;
++	buffer->frame = frame;
+ 	buffer->output = output;
+ 
+ 	return buffer;
+@@ -727,16 +730,16 @@ vnc_update_buffer(struct nvnc_display *display, struct pixman_region32 *damage)
+ 	struct vnc_buffer *buffer;
+ 	pixman_region32_t local_damage;
+ 	pixman_region16_t nvnc_damage;
+-	struct nvnc_fb *fb;
++	struct nvnc_frame *frame;
+ 
+-	fb = nvnc_fb_pool_acquire(output->fb_pool);
+-	assert(fb);
++	frame = nvnc_frame_pool_acquire(output->frame_pool);
++	assert(frame);
+ 
+-	buffer = nvnc_get_userdata(fb);
++	buffer = nvnc_frame_get_userdata(frame);
+ 	if (!buffer) {
+-		buffer = vnc_buffer_create(fb, output);
+-		nvnc_set_userdata(fb, buffer,
+-				  (nvnc_cleanup_fn) vnc_buffer_destroy);
++		buffer = vnc_buffer_create(frame, output);
++		nvnc_frame_set_userdata(frame, buffer,
++					(nvnc_cleanup_fn) vnc_buffer_destroy);
+ 	}
+ 
+ 	vnc_log_damage(backend, damage);
+@@ -751,8 +754,9 @@ vnc_update_buffer(struct nvnc_display *display, struct pixman_region32 *damage)
+ 	pixman_region_init(&nvnc_damage);
+ 	vnc_region32_to_region16(&nvnc_damage, &local_damage);
+ 
+-	nvnc_display_feed_buffer(output->display, fb, &nvnc_damage);
+-	nvnc_fb_unref(fb);
++	nvnc_frame_set_damage(frame, &nvnc_damage);
++	nvnc_display_feed_frame(output->display, frame);
++	nvnc_frame_unref(frame);
+ 	pixman_region32_fini(&local_damage);
+ 	pixman_region_fini(&nvnc_damage);
+ }
+@@ -782,8 +786,7 @@ vnc_new_client(struct nvnc_client *client)
+ 
+ 	wl_list_insert(&output->peers, &peer->link);
+ 
+-	nvnc_set_userdata(client, peer, NULL);
+-	nvnc_set_client_cleanup_fn(client, vnc_client_cleanup);
++	nvnc_client_set_userdata(client, peer, vnc_client_cleanup);
+ 
+ 	/*
+ 	 * Make up for repaints that were skipped when no clients were
+@@ -869,10 +872,10 @@ vnc_output_enable(struct weston_output *base)
+ 							     finish_frame_handler,
+ 							     output);
+ 
+-	output->fb_pool = nvnc_fb_pool_new(output->base.current_mode->width,
+-					   output->base.current_mode->height,
+-					   backend->formats[0]->format,
+-					   output->base.current_mode->width);
++	output->frame_pool = nvnc_frame_pool_new(output->base.current_mode->width,
++						 output->base.current_mode->height,
++						 backend->formats[0]->format,
++						 output->base.current_mode->width);
+ 
+ 	output->display = nvnc_display_new(0, 0);
+ 
+@@ -897,7 +900,7 @@ vnc_output_disable(struct weston_output *base)
+ 
+ 	nvnc_remove_display(backend->server, output->display);
+ 	nvnc_display_unref(output->display);
+-	nvnc_fb_pool_unref(output->fb_pool);
++	nvnc_frame_pool_unref(output->frame_pool);
+ 
+ 	switch (renderer->type) {
+ 	case WESTON_RENDERER_PIXMAN:
+@@ -966,7 +969,7 @@ vnc_destroy(struct weston_backend *base)
+ 	struct weston_compositor *ec = backend->compositor;
+ 	struct weston_head *head, *next;
+ 
+-	nvnc_close(backend->server);
++	nvnc_del(backend->server);
+ 
+ 	wl_list_remove(&backend->base.link);
+ 
+@@ -1122,15 +1125,15 @@ vnc_switch_mode(struct weston_output *base, struct weston_mode *target_mode)
+ 	/* vnc_buffers are stored as user data pointers into the renderbuffers
+ 	 * for the discarded callback. weston_renderer_resize_output(), which
+ 	 * triggers the renderbuffer's discarded callbacks, must be called
+-	 * before nvnc_fb_pool_resize(), which destroys all the nvnc_fbs and
+-	 * their associated vnc_buffers, so that the vnc_buffers are valid at
+-	 * callback. */
++	 * before nvnc_frame_pool_resize(), which destroys all the nvnc_frames
++	 * and their associated vnc_buffers, so that the vnc_buffers are valid
++	 * at callback. */
+ 	if (!weston_renderer_resize_output(base, &fb_size, NULL))
+ 		return -1;
+ 
+-	nvnc_fb_pool_resize(output->fb_pool, target_mode->width,
+-			    target_mode->height, DRM_FORMAT_XRGB8888,
+-			    target_mode->width);
++	nvnc_frame_pool_resize(output->frame_pool, target_mode->width,
++			       target_mode->height, DRM_FORMAT_XRGB8888,
++			       target_mode->width);
+ 
+ 	return 0;
+ }
+@@ -1278,10 +1281,15 @@ vnc_backend_create(struct weston_compositor *compositor,
+ 						  vnc_aml_dispatch,
+ 						  backend->aml);
+ 
+-	backend->server = nvnc_open(config->bind_address, config->port);
++	backend->server = nvnc_new();
+ 	if (!backend->server)
+ 		goto err_aml;
+ 
++	ret = nvnc_listen_tcp(backend->server, config->bind_address, config->port,
++			      NVNC_STREAM_NORMAL);
++	if (ret)
++		goto err_nvnc;
++
+ 	nvnc_set_new_client_fn(backend->server, vnc_new_client);
+ 	nvnc_set_pointer_fn(backend->server, vnc_pointer_event);
+ 	nvnc_set_key_fn(backend->server, vnc_handle_key_event);
+@@ -1352,7 +1360,7 @@ vnc_backend_create(struct weston_compositor *compositor,
+ 	return backend;
+ 
+ err_nvnc:
+-	nvnc_close(backend->server);
++	nvnc_del(backend->server);
+ err_aml:
+ 	aml_unref(backend->aml);
+ err_output:
diff --git a/patches/weston-15.0.1/series b/patches/weston-15.0.1/series
new file mode 100644
index 000000000000..39348c953099
--- /dev/null
+++ b/patches/weston-15.0.1/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-backend-vnc-gitlab-ci-Update-to-Neat-VNC-1.0.0-aml-1.patch
+# 0f79398813720bf34c5565b3a0a8e1f7  - git-ptx-patches magic
-- 
2.47.3




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ptxdist] [APPLIED] aml: version bump 0.3.0 -> 1.0.0
  2026-05-21 14:44 [ptxdist] [PATCH 1/4] aml: version bump 0.3.0 -> 1.0.0 Philipp Zabel
                   ` (2 preceding siblings ...)
  2026-05-21 14:44 ` [ptxdist] [PATCH 4/4] weston: build with neatvnc/aml 1.0.0 Philipp Zabel
@ 2026-05-27 21:54 ` Michael Olbrich
  3 siblings, 0 replies; 8+ messages in thread
From: Michael Olbrich @ 2026-05-27 21:54 UTC (permalink / raw)
  To: ptxdist; +Cc: Philipp Zabel

Thanks, applied as 541828e3514648e1ee6d6626f3fc9950250f8d5b.

Michael

[sent from post-receive hook]

On Wed, 27 May 2026 23:54:59 +0200, Philipp Zabel <p.zabel@pengutronix.de> wrote:
> https://github.com/any1/aml/releases/tag/v1.0.0
> 
> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
> Message-Id: <20260521144450.1295826-1-p.zabel@pengutronix.de>
> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
> 
> diff --git a/rules/aml.make b/rules/aml.make
> index 0e4c7ac6c059..ffa61f0d3cd0 100644
> --- a/rules/aml.make
> +++ b/rules/aml.make
> @@ -14,14 +14,15 @@ PACKAGES-$(PTXCONF_AML) += aml
>  #
>  # Paths and names
>  #
> -AML_VERSION	:= 0.3.0
> -AML_SHA256	:= cba1ca1689d4031faf37bb7a184559106b6d2f462ae8890a9fa16e3022ca1eb0
> +AML_VERSION	:= 1.0.0
> +AML_SHA256	:= b2b8f743213af39f40e8bc611147d69e2ea9e010b9b19cb65246582338f28d96
>  AML		:= aml-$(AML_VERSION)
>  AML_SUFFIX	:= tar.gz
>  AML_URL		:= https://github.com/any1/aml/archive/refs/tags/v$(AML_VERSION).$(AML_SUFFIX)
>  AML_SOURCE	:= $(SRCDIR)/$(AML).$(AML_SUFFIX)
>  AML_DIR		:= $(BUILDDIR)/$(AML)
>  AML_LICENSE	:= ISC
> +AML_LICENSE_FILES	:= file://COPYING;md5=e6f3cfaa39204b96e14b68b9d50d3e4e
>  
>  # ----------------------------------------------------------------------------
>  # Prepare



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ptxdist] [APPLIED] neatvnc: version bump 0.9.5 -> 1.0.0
  2026-05-21 14:44 ` [ptxdist] [PATCH 2/4] neatvnc: version bump 0.9.5 " Philipp Zabel
@ 2026-05-27 21:55   ` Michael Olbrich
  0 siblings, 0 replies; 8+ messages in thread
From: Michael Olbrich @ 2026-05-27 21:55 UTC (permalink / raw)
  To: ptxdist; +Cc: Philipp Zabel

Thanks, applied as d48aa2f64973f3204fc0d287f0b1e3121ee72019.

Michael

[sent from post-receive hook]

On Wed, 27 May 2026 23:55:00 +0200, Philipp Zabel <p.zabel@pengutronix.de> wrote:
> https://github.com/any1/neatvnc/releases/tag/v1.0.0
> 
> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
> Message-Id: <20260521144450.1295826-2-p.zabel@pengutronix.de>
> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
> 
> diff --git a/rules/neatvnc.make b/rules/neatvnc.make
> index 69544a3180fd..7f26bb79072c 100644
> --- a/rules/neatvnc.make
> +++ b/rules/neatvnc.make
> @@ -14,14 +14,15 @@ PACKAGES-$(PTXCONF_NEATVNC) += neatvnc
>  #
>  # Paths and names
>  #
> -NEATVNC_VERSION	:= 0.9.5
> -NEATVNC_SHA256	:= 8150a30bfbd350b046680650b52afcce5ae44d328cb396fb571c6f9b99811357
> +NEATVNC_VERSION	:= 1.0.0
> +NEATVNC_SHA256	:= 993dedc30e72981650770c04438e9759537e4677010e2dab5e792c39afe74601
>  NEATVNC		:= neatvnc-$(NEATVNC_VERSION)
>  NEATVNC_SUFFIX	:= tar.gz
>  NEATVNC_URL	:= https://github.com/any1/neatvnc/archive/refs/tags/v$(NEATVNC_VERSION).$(NEATVNC_SUFFIX)
>  NEATVNC_SOURCE	:= $(SRCDIR)/$(NEATVNC).$(NEATVNC_SUFFIX)
>  NEATVNC_DIR	:= $(BUILDDIR)/$(NEATVNC)
>  NEATVNC_LICENSE	:= ISC
> +NEATVNC_LICENSE_FILES	:= file://COPYING;md5=94fc374e7174f41e3afe0f027ee59ff7
>  
>  # ----------------------------------------------------------------------------
>  # Prepare



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ptxdist] [APPLIED] wayvnc: version bump 0.9.1 -> 0.10.0
  2026-05-21 14:44 ` [ptxdist] [PATCH 3/4] wayvnc: version bump 0.9.1 -> 0.10.0 Philipp Zabel
@ 2026-05-27 21:55   ` Michael Olbrich
  0 siblings, 0 replies; 8+ messages in thread
From: Michael Olbrich @ 2026-05-27 21:55 UTC (permalink / raw)
  To: ptxdist; +Cc: Philipp Zabel

Thanks, applied as a5e7dc353a661e80ee0a308ffed75d5621bad7a8.

Michael

[sent from post-receive hook]

On Wed, 27 May 2026 23:55:01 +0200, Philipp Zabel <p.zabel@pengutronix.de> wrote:
> https://github.com/any1/wayvnc/releases/tag/v0.10.0
> 
> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
> Message-Id: <20260521144450.1295826-3-p.zabel@pengutronix.de>
> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
> 
> diff --git a/rules/wayvnc.make b/rules/wayvnc.make
> index 2163daed3061..ab3a9a272d92 100644
> --- a/rules/wayvnc.make
> +++ b/rules/wayvnc.make
> @@ -14,14 +14,15 @@ PACKAGES-$(PTXCONF_WAYVNC) += wayvnc
>  #
>  # Paths and names
>  #
> -WAYVNC_VERSION	:= 0.9.1
> -WAYVNC_SHA256	:= aaaca02d36e54ec6ecf457dc266251946d895ac91521fbabb3470c3c09b3753c
> +WAYVNC_VERSION	:= 0.10.0
> +WAYVNC_SHA256	:= fcfda018d0e07ec00a80071420c8cc2a75885dc6d5e55bb50a9b12353754338f
>  WAYVNC		:= wayvnc-$(WAYVNC_VERSION)
>  WAYVNC_SUFFIX	:= tar.gz
>  WAYVNC_URL	:= https://github.com/any1/wayvnc/archive/refs/tags/v$(WAYVNC_VERSION).$(WAYVNC_SUFFIX)
>  WAYVNC_SOURCE	:= $(SRCDIR)/$(WAYVNC).$(WAYVNC_SUFFIX)
>  WAYVNC_DIR	:= $(BUILDDIR)/$(WAYVNC)
>  WAYVNC_LICENSE	:= ISC
> +WAYVNC_LICENSE_FILES	:= file://COPYING;md5=94fc374e7174f41e3afe0f027ee59ff7
>  
>  # ----------------------------------------------------------------------------
>  # Prepare



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ptxdist] [APPLIED] weston: build with neatvnc/aml 1.0.0
  2026-05-21 14:44 ` [ptxdist] [PATCH 4/4] weston: build with neatvnc/aml 1.0.0 Philipp Zabel
@ 2026-05-27 21:55   ` Michael Olbrich
  0 siblings, 0 replies; 8+ messages in thread
From: Michael Olbrich @ 2026-05-27 21:55 UTC (permalink / raw)
  To: ptxdist; +Cc: Philipp Zabel

Thanks, applied as 1e780e4148783f85e8f470627081f243aa841a87.

Michael

[sent from post-receive hook]

On Wed, 27 May 2026 23:55:02 +0200, Philipp Zabel <p.zabel@pengutronix.de> wrote:
> Update to the stable Neat VNC and aml APIs to allow building against
> neatvnc 1.0.0 and aml 1.0.0.
> 
> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
> Message-Id: <20260521144450.1295826-4-p.zabel@pengutronix.de>
> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
> 
> diff --git a/patches/weston-15.0.1/0001-backend-vnc-gitlab-ci-Update-to-Neat-VNC-1.0.0-aml-1.patch b/patches/weston-15.0.1/0001-backend-vnc-gitlab-ci-Update-to-Neat-VNC-1.0.0-aml-1.patch
> new file mode 100644
> index 000000000000..d8b51d7f27dc
> --- /dev/null
> +++ b/patches/weston-15.0.1/0001-backend-vnc-gitlab-ci-Update-to-Neat-VNC-1.0.0-aml-1.patch
> @@ -0,0 +1,340 @@
> +From: Philipp Zabel <p.zabel@pengutronix.de>
> +Date: Mon, 31 Mar 2025 15:52:25 +0200
> +Subject: [PATCH] backend-vnc, gitlab-ci: Update to Neat VNC 1.0.0, aml 1.0.0
> +
> +Update to Neat VNC 1.0.0 and aml 1.0.0, which promise stable API.
> +
> +Adapt to API changes:
> + - authentication API now wraps username/password into
> +   credentials and can be asynchronous
> + - userdata get/setters are now type specific
> + - fbs have been renamed to frames, storing dimensions and damage
> + - nvnc_open() is split into nvnc_new() and nvnc_listen_tcp()
> + - nvnc_close() is now nvnc_del()
> +
> +Upstream-Status: Backport [https://gitlab.freedesktop.org/wayland/weston/-/commit/8a1c91e771312d1e0d0cd92495ef717402784dae]
> +
> +Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
> +---
> + libweston/backend-vnc/meson.build |   4 +-
> + libweston/backend-vnc/vnc.c       | 110 ++++++++++++++++++++------------------
> + 2 files changed, 61 insertions(+), 53 deletions(-)
> +
> +diff --git a/libweston/backend-vnc/meson.build b/libweston/backend-vnc/meson.build
> +index cf67c51cbf77..7dc278db3818 100644
> +--- a/libweston/backend-vnc/meson.build
> ++++ b/libweston/backend-vnc/meson.build
> +@@ -3,12 +3,12 @@ if not get_option('backend-vnc')
> + endif
> + 
> + config_h.set('BUILD_VNC_COMPOSITOR', '1')
> +-dep_neatvnc = dependency('neatvnc', version: ['>= 0.7.0', '< 0.10.0'], required: false, fallback: ['neatvnc', 'neatvnc_dep'])
> ++dep_neatvnc = dependency('neatvnc', version: ['>= 1.0.0', '< 2.0.0'], required: false, fallback: ['neatvnc', 'neatvnc_dep'])
> + if not dep_neatvnc.found()
> + 	error('VNC backend requires neatvnc which was not found. Or, you can use \'-Dbackend-vnc=false\'.')
> + endif
> + 
> +-dep_aml = dependency('aml', version: ['>= 0.3.0', '< 0.4.0'], required: false, fallback: ['aml', 'aml_dep'])
> ++dep_aml = dependency('aml1', version: ['>= 1.0.0', '< 2.0.0'], required: false, fallback: ['aml', 'aml_dep'])
> + if not dep_aml.found()
> + 	error('VNC backend requires libaml which was not found. Or, you can use \'-Dbackend-vnc=false\'.')
> + endif
> +diff --git a/libweston/backend-vnc/vnc.c b/libweston/backend-vnc/vnc.c
> +index 554143059e53..6c433d3de8ab 100644
> +--- a/libweston/backend-vnc/vnc.c
> ++++ b/libweston/backend-vnc/vnc.c
> +@@ -42,7 +42,6 @@
> + #include <unistd.h>
> + #include <xkbcommon/xkbcommon-keysyms.h>
> + #include <xkbcommon/xkbcommon.h>
> +-#define AML_UNSTABLE_API 1
> + #include <aml.h>
> + #include <neatvnc.h>
> + #include <drm_fourcc.h>
> +@@ -89,7 +88,7 @@ struct vnc_output {
> + 	struct wl_event_source *finish_frame_timer;
> + 	struct nvnc_display *display;
> + 
> +-	struct nvnc_fb_pool *fb_pool;
> ++	struct nvnc_frame_pool *frame_pool;
> + 
> + 	struct wl_list peers;
> + 
> +@@ -111,7 +110,7 @@ struct vnc_head {
> + 
> + struct vnc_buffer {
> + 	weston_renderbuffer_t rb;
> +-	struct nvnc_fb *fb;
> ++	struct nvnc_frame *frame;
> + 	struct vnc_output *output;
> + };
> + 
> +@@ -296,7 +295,7 @@ static void
> + vnc_handle_key_event(struct nvnc_client *client, uint32_t keysym,
> + 		     bool is_pressed)
> + {
> +-	struct vnc_peer *peer = nvnc_get_userdata(client);
> ++	struct vnc_peer *peer = nvnc_client_get_userdata(client);
> + 	uint32_t key = 0;
> + 	bool needs_shift = false;
> + 	enum weston_key_state_update state_update;
> +@@ -356,7 +355,7 @@ static void
> + vnc_handle_key_code_event(struct nvnc_client *client, uint32_t key,
> + 			  bool is_pressed)
> + {
> +-	struct vnc_peer *peer = nvnc_get_userdata(client);
> ++	struct vnc_peer *peer = nvnc_client_get_userdata(client);
> + 	enum wl_keyboard_key_state state;
> + 	struct timespec time;
> + 
> +@@ -403,7 +402,7 @@ static bool
> + vnc_handle_desktop_layout_event(struct nvnc_client *client,
> + 				const struct nvnc_desktop_layout *layout)
> + {
> +-	struct vnc_peer *peer = nvnc_get_userdata(client);
> ++	struct vnc_peer *peer = nvnc_client_get_userdata(client);
> + 	struct vnc_output *output = peer->backend->output;
> + 	struct weston_mode new_mode;
> + 	uint16_t width = nvnc_desktop_layout_get_width(layout);
> +@@ -427,7 +426,7 @@ static void
> + vnc_pointer_event(struct nvnc_client *client, uint16_t x, uint16_t y,
> + 		  enum nvnc_button_mask button_mask)
> + {
> +-	struct vnc_peer *peer = nvnc_get_userdata(client);
> ++	struct vnc_peer *peer = nvnc_client_get_userdata(client);
> + 	struct vnc_output *output = peer->backend->output;
> + 	struct timespec time;
> + 	enum nvnc_button_mask changed_button_mask;
> +@@ -482,23 +481,29 @@ vnc_pointer_event(struct nvnc_client *client, uint16_t x, uint16_t y,
> + 	notify_pointer_frame(peer->seat);
> + }
> + 
> +-static bool
> +-vnc_handle_auth(const char *username, const char *password, void *userdata)
> ++static void
> ++vnc_handle_auth(struct nvnc_auth_creds *creds, void *userdata)
> + {
> ++	const char *username = nvnc_auth_creds_get_username(creds);
> ++	const char *password = nvnc_auth_creds_get_password(creds);
> + 	struct passwd *pw = getpwnam(username);
> + 
> + 	if (!pw || pw->pw_uid != getuid()) {
> + 		weston_log("VNC: wrong user '%s'\n", username);
> +-		return false;
> ++		nvnc_auth_creds_reject(creds, "Invalid username");
> ++		return;
> + 	}
> + 
> +-	return weston_authenticate_user(username, password);
> ++	if (weston_authenticate_user(username, password))
> ++		nvnc_auth_creds_accept(creds);
> ++	else
> ++		nvnc_auth_creds_reject(creds, "Invalid password");
> + }
> + 
> + static void
> +-vnc_client_cleanup(struct nvnc_client *client)
> ++vnc_client_cleanup(void *userdata)
> + {
> +-	struct vnc_peer *peer = nvnc_get_userdata(client);
> ++	struct vnc_peer *peer = userdata;
> + 	struct vnc_output *output = peer->backend->output;
> + 
> + 	wl_list_remove(&peer->link);
> +@@ -548,7 +553,7 @@ vnc_output_update_cursor(struct vnc_output *output)
> + 	pixman_region32_t damage;
> + 	struct weston_buffer *buffer;
> + 	struct weston_surface *cursor_surface;
> +-	struct nvnc_fb *fb;
> ++	struct nvnc_frame *frame;
> + 	uint8_t *src, *dst;
> + 	int i;
> + 
> +@@ -565,12 +570,11 @@ vnc_output_update_cursor(struct vnc_output *output)
> + 	cursor_surface = output->cursor_surface;
> + 	buffer = cursor_surface->buffer_ref.buffer;
> + 
> +-	fb = nvnc_fb_new(buffer->width, buffer->height, DRM_FORMAT_ARGB8888,
> +-			 buffer->width);
> +-	assert(fb);
> ++	frame = nvnc_frame_new(buffer->width, buffer->height, DRM_FORMAT_ARGB8888, buffer->width);
> ++	assert(frame);
> + 
> + 	src = wl_shm_buffer_get_data(buffer->shm_buffer);
> +-	dst = nvnc_fb_get_addr(fb);
> ++	dst = nvnc_frame_get_addr(frame);
> + 
> + 	wl_shm_buffer_begin_access(buffer->shm_buffer);
> + 	for (i = 0; i < buffer->height; i++)
> +@@ -578,9 +582,8 @@ vnc_output_update_cursor(struct vnc_output *output)
> + 		       4 * buffer->width);
> + 	wl_shm_buffer_end_access(buffer->shm_buffer);
> + 
> +-	nvnc_set_cursor(backend->server, fb, buffer->width, buffer->height,
> +-			pointer->hotspot.c.x, pointer->hotspot.c.y, true);
> +-	nvnc_fb_unref(fb);
> ++	nvnc_set_cursor(backend->server, frame, pointer->hotspot.c.x, pointer->hotspot.c.y, true);
> ++	nvnc_frame_unref(frame);
> + }
> + 
> + static void
> +@@ -682,16 +685,16 @@ vnc_rb_discarded_cb(weston_renderbuffer_t rb, void *data)
> + {
> + 	struct vnc_buffer *buffer = (struct vnc_buffer *) data;
> + 
> +-	assert(nvnc_get_userdata(buffer->fb) == buffer);
> ++	assert(nvnc_frame_get_userdata(buffer->frame) == buffer);
> + 
> +-	nvnc_set_userdata(buffer->fb, NULL, NULL);
> ++	nvnc_frame_set_userdata(buffer->frame, NULL, NULL);
> + 	vnc_buffer_destroy(buffer);
> + 
> + 	return true;
> + }
> + 
> + static struct vnc_buffer *
> +-vnc_buffer_create(struct nvnc_fb* fb, struct vnc_output *output)
> ++vnc_buffer_create(struct nvnc_frame* frame, struct vnc_output *output)
> + {
> + 	const struct pixel_format_info *pfmt =
> + 		pixel_format_get_info(DRM_FORMAT_XRGB8888);
> +@@ -699,10 +702,10 @@ vnc_buffer_create(struct nvnc_fb* fb, struct vnc_output *output)
> + 	struct vnc_buffer *buffer = xmalloc(sizeof *buffer);
> + 
> + 	buffer->rb = rdr->create_renderbuffer(&output->base, pfmt,
> +-					      nvnc_fb_get_addr(fb),
> ++					      nvnc_frame_get_addr(frame),
> + 					      output->base.current_mode->width * 4,
> + 					      vnc_rb_discarded_cb, buffer);
> +-	buffer->fb = fb;
> ++	buffer->frame = frame;
> + 	buffer->output = output;
> + 
> + 	return buffer;
> +@@ -727,16 +730,16 @@ vnc_update_buffer(struct nvnc_display *display, struct pixman_region32 *damage)
> + 	struct vnc_buffer *buffer;
> + 	pixman_region32_t local_damage;
> + 	pixman_region16_t nvnc_damage;
> +-	struct nvnc_fb *fb;
> ++	struct nvnc_frame *frame;
> + 
> +-	fb = nvnc_fb_pool_acquire(output->fb_pool);
> +-	assert(fb);
> ++	frame = nvnc_frame_pool_acquire(output->frame_pool);
> ++	assert(frame);
> + 
> +-	buffer = nvnc_get_userdata(fb);
> ++	buffer = nvnc_frame_get_userdata(frame);
> + 	if (!buffer) {
> +-		buffer = vnc_buffer_create(fb, output);
> +-		nvnc_set_userdata(fb, buffer,
> +-				  (nvnc_cleanup_fn) vnc_buffer_destroy);
> ++		buffer = vnc_buffer_create(frame, output);
> ++		nvnc_frame_set_userdata(frame, buffer,
> ++					(nvnc_cleanup_fn) vnc_buffer_destroy);
> + 	}
> + 
> + 	vnc_log_damage(backend, damage);
> +@@ -751,8 +754,9 @@ vnc_update_buffer(struct nvnc_display *display, struct pixman_region32 *damage)
> + 	pixman_region_init(&nvnc_damage);
> + 	vnc_region32_to_region16(&nvnc_damage, &local_damage);
> + 
> +-	nvnc_display_feed_buffer(output->display, fb, &nvnc_damage);
> +-	nvnc_fb_unref(fb);
> ++	nvnc_frame_set_damage(frame, &nvnc_damage);
> ++	nvnc_display_feed_frame(output->display, frame);
> ++	nvnc_frame_unref(frame);
> + 	pixman_region32_fini(&local_damage);
> + 	pixman_region_fini(&nvnc_damage);
> + }
> +@@ -782,8 +786,7 @@ vnc_new_client(struct nvnc_client *client)
> + 
> + 	wl_list_insert(&output->peers, &peer->link);
> + 
> +-	nvnc_set_userdata(client, peer, NULL);
> +-	nvnc_set_client_cleanup_fn(client, vnc_client_cleanup);
> ++	nvnc_client_set_userdata(client, peer, vnc_client_cleanup);
> + 
> + 	/*
> + 	 * Make up for repaints that were skipped when no clients were
> +@@ -869,10 +872,10 @@ vnc_output_enable(struct weston_output *base)
> + 							     finish_frame_handler,
> + 							     output);
> + 
> +-	output->fb_pool = nvnc_fb_pool_new(output->base.current_mode->width,
> +-					   output->base.current_mode->height,
> +-					   backend->formats[0]->format,
> +-					   output->base.current_mode->width);
> ++	output->frame_pool = nvnc_frame_pool_new(output->base.current_mode->width,
> ++						 output->base.current_mode->height,
> ++						 backend->formats[0]->format,
> ++						 output->base.current_mode->width);
> + 
> + 	output->display = nvnc_display_new(0, 0);
> + 
> +@@ -897,7 +900,7 @@ vnc_output_disable(struct weston_output *base)
> + 
> + 	nvnc_remove_display(backend->server, output->display);
> + 	nvnc_display_unref(output->display);
> +-	nvnc_fb_pool_unref(output->fb_pool);
> ++	nvnc_frame_pool_unref(output->frame_pool);
> + 
> + 	switch (renderer->type) {
> + 	case WESTON_RENDERER_PIXMAN:
> +@@ -966,7 +969,7 @@ vnc_destroy(struct weston_backend *base)
> + 	struct weston_compositor *ec = backend->compositor;
> + 	struct weston_head *head, *next;
> + 
> +-	nvnc_close(backend->server);
> ++	nvnc_del(backend->server);
> + 
> + 	wl_list_remove(&backend->base.link);
> + 
> +@@ -1122,15 +1125,15 @@ vnc_switch_mode(struct weston_output *base, struct weston_mode *target_mode)
> + 	/* vnc_buffers are stored as user data pointers into the renderbuffers
> + 	 * for the discarded callback. weston_renderer_resize_output(), which
> + 	 * triggers the renderbuffer's discarded callbacks, must be called
> +-	 * before nvnc_fb_pool_resize(), which destroys all the nvnc_fbs and
> +-	 * their associated vnc_buffers, so that the vnc_buffers are valid at
> +-	 * callback. */
> ++	 * before nvnc_frame_pool_resize(), which destroys all the nvnc_frames
> ++	 * and their associated vnc_buffers, so that the vnc_buffers are valid
> ++	 * at callback. */
> + 	if (!weston_renderer_resize_output(base, &fb_size, NULL))
> + 		return -1;
> + 
> +-	nvnc_fb_pool_resize(output->fb_pool, target_mode->width,
> +-			    target_mode->height, DRM_FORMAT_XRGB8888,
> +-			    target_mode->width);
> ++	nvnc_frame_pool_resize(output->frame_pool, target_mode->width,
> ++			       target_mode->height, DRM_FORMAT_XRGB8888,
> ++			       target_mode->width);
> + 
> + 	return 0;
> + }
> +@@ -1278,10 +1281,15 @@ vnc_backend_create(struct weston_compositor *compositor,
> + 						  vnc_aml_dispatch,
> + 						  backend->aml);
> + 
> +-	backend->server = nvnc_open(config->bind_address, config->port);
> ++	backend->server = nvnc_new();
> + 	if (!backend->server)
> + 		goto err_aml;
> + 
> ++	ret = nvnc_listen_tcp(backend->server, config->bind_address, config->port,
> ++			      NVNC_STREAM_NORMAL);
> ++	if (ret)
> ++		goto err_nvnc;
> ++
> + 	nvnc_set_new_client_fn(backend->server, vnc_new_client);
> + 	nvnc_set_pointer_fn(backend->server, vnc_pointer_event);
> + 	nvnc_set_key_fn(backend->server, vnc_handle_key_event);
> +@@ -1352,7 +1360,7 @@ vnc_backend_create(struct weston_compositor *compositor,
> + 	return backend;
> + 
> + err_nvnc:
> +-	nvnc_close(backend->server);
> ++	nvnc_del(backend->server);
> + err_aml:
> + 	aml_unref(backend->aml);
> + err_output:
> diff --git a/patches/weston-15.0.1/series b/patches/weston-15.0.1/series
> new file mode 100644
> index 000000000000..39348c953099
> --- /dev/null
> +++ b/patches/weston-15.0.1/series
> @@ -0,0 +1,4 @@
> +# generated by git-ptx-patches
> +#tag:base --start-number 1
> +0001-backend-vnc-gitlab-ci-Update-to-Neat-VNC-1.0.0-aml-1.patch
> +# 0f79398813720bf34c5565b3a0a8e1f7  - git-ptx-patches magic



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-05-27 21:55 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-05-21 14:44 [ptxdist] [PATCH 1/4] aml: version bump 0.3.0 -> 1.0.0 Philipp Zabel
2026-05-21 14:44 ` [ptxdist] [PATCH 2/4] neatvnc: version bump 0.9.5 " Philipp Zabel
2026-05-27 21:55   ` [ptxdist] [APPLIED] " Michael Olbrich
2026-05-21 14:44 ` [ptxdist] [PATCH 3/4] wayvnc: version bump 0.9.1 -> 0.10.0 Philipp Zabel
2026-05-27 21:55   ` [ptxdist] [APPLIED] " Michael Olbrich
2026-05-21 14:44 ` [ptxdist] [PATCH 4/4] weston: build with neatvnc/aml 1.0.0 Philipp Zabel
2026-05-27 21:55   ` [ptxdist] [APPLIED] " Michael Olbrich
2026-05-27 21:54 ` [ptxdist] [APPLIED] aml: version bump 0.3.0 -> 1.0.0 Michael Olbrich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox