Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package wl-mirror for openSUSE:Factory checked in at 2025-04-29 16:40:13 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/wl-mirror (Old) and /work/SRC/openSUSE:Factory/.wl-mirror.new.30101 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wl-mirror" Tue Apr 29 16:40:13 2025 rev:4 rq:1273198 version:0.18.2 Changes: -------- --- /work/SRC/openSUSE:Factory/wl-mirror/wl-mirror.changes 2025-04-02 17:17:36.628040313 +0200 +++ /work/SRC/openSUSE:Factory/.wl-mirror.new.30101/wl-mirror.changes 2025-04-29 16:40:48.879284396 +0200 @@ -1,0 +2,7 @@ +Mon Apr 28 15:58:39 UTC 2025 - Lorenz Holzbauer <lorenzholzba...@ikmail.com> + +- Update to new upstream release v0.18.2: + * Fix a wlroots compositor warning with wlroots 0.19.0-rc1 and newer when compiling with libdecor + * Fix unused variable warnings when compiling without GBM + +------------------------------------------------------------------- Old: ---- wl-mirror-0.18.1.tar.gz New: ---- wl-mirror-0.18.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ wl-mirror.spec ++++++ --- /var/tmp/diff_new_pack.XGsOEL/_old 2025-04-29 16:40:49.543312287 +0200 +++ /var/tmp/diff_new_pack.XGsOEL/_new 2025-04-29 16:40:49.551312623 +0200 @@ -18,7 +18,7 @@ Name: wl-mirror -Version: 0.18.1 +Version: 0.18.2 Release: 0 Summary: A Wayland output mirror client License: GPL-3.0-or-later ++++++ wl-mirror-0.18.1.tar.gz -> wl-mirror-0.18.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-mirror-0.18.1/include/wlm/egl.h new/wl-mirror-0.18.2/include/wlm/egl.h --- old/wl-mirror-0.18.1/include/wlm/egl.h 2025-03-29 21:46:47.000000000 +0100 +++ new/wl-mirror-0.18.2/include/wlm/egl.h 2025-04-24 11:52:32.000000000 +0200 @@ -74,6 +74,7 @@ bool wlm_egl_query_dmabuf_formats(struct ctx * ctx); bool wlm_egl_check_errors(struct ctx * ctx, const char * msg); +void wlm_egl_draw_frame(struct ctx * ctx); void wlm_egl_draw_texture(struct ctx * ctx); void wlm_egl_resize_viewport(struct ctx * ctx); void wlm_egl_resize_window(struct ctx * ctx); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-mirror-0.18.1/include/wlm/wayland.h new/wl-mirror-0.18.2/include/wlm/wayland.h --- old/wl-mirror-0.18.1/include/wlm/wayland.h 2025-03-29 21:46:47.000000000 +0100 +++ new/wl-mirror-0.18.2/include/wlm/wayland.h 2025-04-24 11:52:32.000000000 +0200 @@ -123,6 +123,7 @@ } ctx_wl_t; void wlm_wayland_init(struct ctx * ctx); +void wlm_wayland_configure_window(struct ctx * ctx); void wlm_wayland_window_close(struct ctx * ctx); void wlm_wayland_window_set_title(struct ctx * ctx, const char * title); void wlm_wayland_window_set_fullscreen(struct ctx * ctx); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-mirror-0.18.1/src/egl.c new/wl-mirror-0.18.2/src/egl.c --- old/wl-mirror-0.18.1/src/egl.c 2025-03-29 21:46:47.000000000 +0100 +++ new/wl-mirror-0.18.2/src/egl.c 2025-04-24 11:52:32.000000000 +0200 @@ -262,13 +262,6 @@ glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 4 * sizeof (float), (void *)(2 * sizeof (float))); glEnableVertexAttribArray(0); glEnableVertexAttribArray(1); - - // draw initial frame - wlm_egl_draw_texture(ctx); - if (eglSwapBuffers(ctx->egl.display, ctx->egl.surface) != EGL_TRUE) { - wlm_log_error("egl::init(): failed to swap buffers\n"); - wlm_exit_fail(ctx); - } } // --- query_dmabuf_formats --- @@ -392,6 +385,18 @@ (void)ctx; } +// --- draw_frame --- + +void wlm_egl_draw_frame(struct ctx * ctx) { + // render frame, set swap interval to 0 to ensure nonblocking buffer swap + wlm_egl_draw_texture(ctx); + eglSwapInterval(ctx->egl.display, 0); + if (eglSwapBuffers(ctx->egl.display, ctx->egl.surface) != EGL_TRUE) { + wlm_log_error("egl::draw_frame(): failed to swap buffers\n"); + wlm_exit_fail(ctx); + } +} + // --- draw_texture --- void wlm_egl_draw_texture(ctx_t *ctx) { @@ -525,13 +530,6 @@ // resize window, then trigger viewport recalculation wl_egl_window_resize(ctx->egl.window, width, height, 0, 0); wlm_egl_resize_viewport(ctx); - - // redraw frame - wlm_egl_draw_texture(ctx); - if (eglSwapBuffers(ctx->egl.display, ctx->egl.surface) != EGL_TRUE) { - wlm_log_error("egl::resize_window(): failed to swap buffers\n"); - wlm_exit_fail(ctx); - } } // --- update_uniforms --- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-mirror-0.18.1/src/main.c new/wl-mirror-0.18.2/src/main.c --- old/wl-mirror-0.18.1/src/main.c 2025-03-29 21:46:47.000000000 +0100 +++ new/wl-mirror-0.18.2/src/main.c 2025-04-24 11:52:32.000000000 +0200 @@ -50,6 +50,9 @@ wlm_log_debug(&ctx, "main::main(): initializing EGL\n"); wlm_egl_init(&ctx); + wlm_log_debug(&ctx, "main::main(): configuring wayland window\n"); + wlm_wayland_configure_window(&ctx); + wlm_log_debug(&ctx, "main::main(): initializing mirror\n"); wlm_mirror_init(&ctx); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-mirror-0.18.1/src/mirror.c new/wl-mirror-0.18.2/src/mirror.c --- old/wl-mirror-0.18.1/src/mirror.c 2025-03-29 21:46:47.000000000 +0100 +++ new/wl-mirror-0.18.2/src/mirror.c 2025-04-24 11:52:32.000000000 +0200 @@ -48,13 +48,7 @@ // - screencapture events from backend wl_display_roundtrip(ctx->wl.display); - // render frame, set swap interval to 0 to ensure nonblocking buffer swap - wlm_egl_draw_texture(ctx); - eglSwapInterval(ctx->egl.display, 0); - if (eglSwapBuffers(ctx->egl.display, ctx->egl.surface) != EGL_TRUE) { - wlm_log_error("mirror::on_frame(): failed to swap buffers\n"); - wlm_exit_fail(ctx); - } + wlm_egl_draw_frame(ctx); (void)frame_callback; (void)msec; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-mirror-0.18.1/src/wayland/dmabuf.c new/wl-mirror-0.18.2/src/wayland/dmabuf.c --- old/wl-mirror-0.18.1/src/wayland/dmabuf.c 2025-03-29 21:46:47.000000000 +0100 +++ new/wl-mirror-0.18.2/src/wayland/dmabuf.c 2025-04-24 11:52:32.000000000 +0200 @@ -158,6 +158,10 @@ #else wlm_log_error("wayland::dmabuf::open_device(): need libGBM for dmabuf allocation\n"); cb(ctx, false); + + (void)ctx; + (void)cb; + (void)linux_dmabuf_feedback_listener; #endif } @@ -211,6 +215,9 @@ return true; #else wlm_log_error("wayland::dmabuf::open_device(): need libGBM for dmabuf allocation\n"); + + (void)ctx; + (void)device; return false; #endif } @@ -295,6 +302,14 @@ #else wlm_log_error("wayland::dmabuf::open_device(): need libGBM for dmabuf allocation\n"); cb(ctx, false); + + (void)ctx; + (void)drm_format; + (void)width; + (void)height; + (void)modifiers; + (void)num_modifiers; + (void)linux_buffer_params_listener; #endif } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-mirror-0.18.1/src/wayland.c new/wl-mirror-0.18.2/src/wayland.c --- old/wl-mirror-0.18.1/src/wayland.c 2025-03-29 21:46:47.000000000 +0100 +++ new/wl-mirror-0.18.2/src/wayland.c 2025-04-24 11:52:32.000000000 +0200 @@ -624,7 +624,12 @@ #else xdg_surface_ack_configure(ctx->wl.xdg_surface, ctx->wl.last_surface_serial); #endif - wl_surface_commit(ctx->wl.surface); + + // draw frame to attach and commit buffer + // reduces number of empty commits + // required if libdecor is used + // contains a surface commit, no second commit necessary + wlm_egl_draw_frame(ctx); // reset configure sequence state machine #ifndef WITH_LIBDECOR @@ -707,9 +712,7 @@ wp_viewport_set_destination(ctx->wl.viewport, width, height); // resize window to reflect new surface size - if (ctx->egl.initialized) { - wlm_egl_resize_window(ctx); - } + wlm_egl_resize_window(ctx); } // update configure sequence state machine @@ -803,9 +806,7 @@ wp_viewport_set_destination(ctx->wl.viewport, width, height); // resize window to reflect new surface size - if (ctx->egl.initialized) { - wlm_egl_resize_window(ctx); - } + wlm_egl_resize_window(ctx); } // update configure sequence state machine @@ -1036,6 +1037,15 @@ wp_fractional_scale_v1_add_listener(ctx->wl.fractional_scale, &fractional_scale_listener, (void *)ctx); } +} + +// --- configure_window --- + +void wlm_wayland_configure_window(struct ctx * ctx) { + if (!ctx->egl.initialized) { + wlm_log_error("wayland::configure_window(): egl must be initialized first\n"); + wlm_exit_fail(ctx); + } #if WITH_LIBDECOR // create libdecor context @@ -1054,11 +1064,9 @@ libdecor_frame_set_title(ctx->wl.libdecor_frame, "Wayland Output Mirror"); // map libdecor frame + // commits surface and triggers configure sequence libdecor_frame_map(ctx->wl.libdecor_frame); - // commit surface to trigger configure sequence - wl_surface_commit(ctx->wl.surface); - // wait for events // - expecting libdecor frame configure event wl_display_roundtrip(ctx->wl.display); @@ -1102,13 +1110,13 @@ // check if surface is configured // - expecting surface to be configured at this point if (!ctx->wl.configured) { - wlm_log_error("wayland::init(): surface not configured\n"); + wlm_log_error("wayland::configure_window(): surface not configured\n"); wlm_exit_fail(ctx); } // set fullscreen on target output if requested by initial options if (ctx->opt.fullscreen && ctx->opt.fullscreen_output != NULL) { - wlm_log_debug(ctx, "wayland::init(): fullscreening on target output\n"); + wlm_log_debug(ctx, "wayland::configure_window(): fullscreening on target output\n"); wlm_wayland_window_set_fullscreen(ctx); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-mirror-0.18.1/version.txt new/wl-mirror-0.18.2/version.txt --- old/wl-mirror-0.18.1/version.txt 2025-03-29 21:46:47.000000000 +0100 +++ new/wl-mirror-0.18.2/version.txt 2025-04-24 11:52:32.000000000 +0200 @@ -1 +1 @@ -v0.18.1 +v0.18.2