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