Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package weston for openSUSE:Factory checked 
in at 2023-08-03 17:28:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/weston (Old)
 and      /work/SRC/openSUSE:Factory/.weston.new.22712 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "weston"

Thu Aug  3 17:28:28 2023 rev:32 rq:1102054 version:12.0.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/weston/weston.changes    2023-05-26 
20:15:48.596382992 +0200
+++ /work/SRC/openSUSE:Factory/.weston.new.22712/weston.changes 2023-08-03 
17:28:30.667301497 +0200
@@ -1,0 +2,7 @@
+Wed Aug  2 17:32:53 UTC 2023 - Jan Engelhardt <jeng...@inai.de>
+
+- Update to release 12.0.2
+  * xwm: WM_TRANSIENT_FOR should not point to override-redirect
+    window
+
+-------------------------------------------------------------------

Old:
----
  weston-12.0.1.tar.xz
  weston-12.0.1.tar.xz.sig

New:
----
  weston-12.0.2.tar.xz
  weston-12.0.2.tar.xz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ weston.spec ++++++
--- /var/tmp/diff_new_pack.OtAfGC/_old  2023-08-03 17:28:32.015309656 +0200
+++ /var/tmp/diff_new_pack.OtAfGC/_new  2023-08-03 17:28:32.059309922 +0200
@@ -19,7 +19,7 @@
 Name:           weston
 %define lname  libweston0
 %define major   12
-Version:        12.0.1
+Version:        12.0.2
 Release:        0
 Summary:        Wayland Reference Compositor
 License:        CC-BY-SA-3.0 AND MIT

++++++ weston-12.0.1.tar.xz -> weston-12.0.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/weston-12.0.1/libweston/backend-drm/drm.c 
new/weston-12.0.2/libweston/backend-drm/drm.c
--- old/weston-12.0.1/libweston/backend-drm/drm.c       2023-05-25 
11:11:45.000000000 +0200
+++ new/weston-12.0.2/libweston/backend-drm/drm.c       2023-08-02 
17:13:49.000000000 +0200
@@ -553,13 +553,19 @@
        int32_t height = output->base.current_mode->height;
        uint32_t format = output->format->format;
 
+       assert(output->device->atomic_modeset);
+
        ct = weston_output_pull_capture_task(&output->base,
                                             
WESTON_OUTPUT_CAPTURE_SOURCE_WRITEBACK,
                                             width, height, 
pixel_format_get_info(format));
        if (!ct)
                return;
 
-       assert(output->device->atomic_modeset);
+       if (output->base.disable_planes > 0) {
+               msg = "drm: KMS planes usage is disabled for now, so " \
+                     "writeback capture tasks are rejected";
+               goto err;
+       }
 
        wb = drm_output_find_compatible_writeback(output);
        if (!wb) {
@@ -636,7 +642,8 @@
        if (drm_output_ensure_hdr_output_metadata_blob(output) < 0)
                goto err;
 
-       drm_output_pick_writeback_capture_task(output);
+       if (device->atomic_modeset)
+               drm_output_pick_writeback_capture_task(output);
 
        drm_output_render(state, damage);
        scanout_state = drm_output_state_get_plane(state,
@@ -948,7 +955,7 @@
                }
        }
 
-       if (device->atomic_modeset && !output->base.disable_planes)
+       if (device->atomic_modeset)
                weston_output_update_capture_info(&output->base,
                                                  
WESTON_OUTPUT_CAPTURE_SOURCE_WRITEBACK,
                                                  
output->base.current_mode->width,
@@ -2138,7 +2145,7 @@
        output->base.switch_mode = drm_output_switch_mode;
        output->base.set_gamma = drm_output_set_gamma;
 
-       if (device->atomic_modeset && !base->disable_planes)
+       if (device->atomic_modeset)
                weston_output_update_capture_info(base, 
WESTON_OUTPUT_CAPTURE_SOURCE_WRITEBACK,
                                                  base->current_mode->width,
                                                  base->current_mode->height,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/weston-12.0.1/libweston/backend-drm/kms.c 
new/weston-12.0.2/libweston/backend-drm/kms.c
--- old/weston-12.0.1/libweston/backend-drm/kms.c       2023-05-25 
11:11:45.000000000 +0200
+++ new/weston-12.0.2/libweston/backend-drm/kms.c       2023-08-02 
17:13:49.000000000 +0200
@@ -42,10 +42,6 @@
 #include "pixel-formats.h"
 #include "presentation-time-server-protocol.h"
 
-#ifndef DRM_CAP_ATOMIC_ASYNC_PAGE_FLIP
-#define DRM_CAP_ATOMIC_ASYNC_PAGE_FLIP 0x15
-#endif
-
 struct drm_property_enum_info plane_type_enums[] = {
        [WDRM_PLANE_TYPE_PRIMARY] = {
                .name = "Primary",
@@ -1851,10 +1847,19 @@
 
        drmSetClientCap(device->drm.fd, DRM_CLIENT_CAP_WRITEBACK_CONNECTORS, 1);
 
+#if 0
+       /* FIXME: DRM_CAP_ATOMIC_ASYNC_PAGE_FLIP isn't merged into mainline so
+        * we can't really use it at this point. Until then, make it so we
+        * don't support it. After it gets merged, we can flip this back such
+        * that we don't need to revert the entire tearing work, and we can
+        * still get it all back, when the capability is actually available in
+        * the kernel. */
        ret = drmGetCap(device->drm.fd, DRM_CAP_ATOMIC_ASYNC_PAGE_FLIP, &cap);
        if (ret != 0)
                cap = 0;
-       device->tearing_supported = cap;
+#endif
+       device->tearing_supported = 0;
+       weston_log("DRM: does not support async page flipping\n");
 
        /*
         * KMS support for hardware planes cannot properly synchronize
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/weston-12.0.1/libweston/backend-drm/meson.build 
new/weston-12.0.2/libweston/backend-drm/meson.build
--- old/weston-12.0.1/libweston/backend-drm/meson.build 2023-05-25 
11:11:45.000000000 +0200
+++ new/weston-12.0.2/libweston/backend-drm/meson.build 2023-08-02 
17:13:49.000000000 +0200
@@ -58,7 +58,7 @@
 ]
 
 if get_option('renderer-gl')
-       dep_gbm = dependency('gbm', required: false)
+       dep_gbm = dependency('gbm', required: false, version: '>= 21.1.1')
        if not dep_gbm.found()
                error('drm-backend with GL renderer requires gbm which was not 
found. Or, you can use \'-Drenderer-gl=false\'.')
        endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/weston-12.0.1/libweston/backend-rdp/rdp.c 
new/weston-12.0.2/libweston/backend-rdp/rdp.c
--- old/weston-12.0.1/libweston/backend-rdp/rdp.c       2023-05-25 
11:11:45.000000000 +0200
+++ new/weston-12.0.2/libweston/backend-rdp/rdp.c       2023-08-02 
17:13:49.000000000 +0200
@@ -338,72 +338,19 @@
        return 1;
 }
 
-static struct weston_mode *
-rdp_insert_new_mode(struct weston_output *output, int width, int height, int 
rate)
-{
-       struct weston_mode *ret;
-       ret = xzalloc(sizeof *ret);
-       ret->width = width;
-       ret->height = height;
-       ret->refresh = rate;
-       ret->flags = WL_OUTPUT_MODE_PREFERRED;
-       wl_list_insert(&output->mode_list, &ret->link);
-       return ret;
-}
-
-/* It doesn't make sense for RDP to have more than one mode, so
- * we make sure that we have only one.
- */
-static struct weston_mode *
-ensure_single_mode(struct weston_output *output, struct weston_mode *target)
-{
-       struct rdp_output *rdpOutput = to_rdp_output(output);
-       struct rdp_backend *b = rdpOutput->backend;
-       struct weston_mode *iter, *local = NULL, *new_mode;
-
-       wl_list_for_each(iter, &output->mode_list, link) {
-               assert(!local);
-
-               if ((iter->width == target->width) &&
-                   (iter->height == target->height) &&
-                   (iter->refresh == target->refresh)) {
-                       return iter;
-               } else {
-                       local = iter;
-               }
-       }
-       /* Make sure we create the new one before freeing the old one
-        * because some mode switch code uses pointer comparisons! If
-        * we freed the old mode first, malloc could theoretically give
-        * us back the same pointer.
-        */
-       new_mode = rdp_insert_new_mode(output,
-                                      target->width, target->height,
-                                      b->rdp_monitor_refresh_rate);
-       if (local) {
-               wl_list_remove(&local->link);
-               free(local);
-       }
-
-       return new_mode;
-}
-
 static void
 rdp_output_set_mode(struct weston_output *base, struct weston_mode *mode)
 {
        struct rdp_output *rdpOutput = container_of(base, struct rdp_output, 
base);
        struct rdp_backend *b = rdpOutput->backend;
-       struct weston_mode *cur;
        struct weston_output *output = base;
        struct rdp_peers_item *rdpPeer;
        rdpSettings *settings;
        struct weston_renderbuffer *new_renderbuffer;
 
        mode->refresh = b->rdp_monitor_refresh_rate;
-       cur = ensure_single_mode(base, mode);
+       weston_output_set_single_mode(base, mode);
 
-       base->current_mode = cur;
-       base->native_mode = cur;
        if (base->enabled) {
                const struct pixman_renderer_interface *pixman;
                const struct pixel_format_info *pfmt;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/weston-12.0.1/libweston/backend-vnc/vnc.c 
new/weston-12.0.2/libweston/backend-vnc/vnc.c
--- old/weston-12.0.1/libweston/backend-vnc/vnc.c       2023-05-25 
11:11:45.000000000 +0200
+++ new/weston-12.0.2/libweston/backend-vnc/vnc.c       2023-08-02 
17:13:49.000000000 +0200
@@ -947,56 +947,15 @@
                vnc_output_update_cursor(output);
 }
 
-static struct weston_mode *
-vnc_insert_new_mode(struct weston_output *output, int width, int height,
-                   int rate)
-{
-       struct weston_mode *mode;
-
-       mode = xzalloc(sizeof *mode);
-       mode->width = width;
-       mode->height = height;
-       mode->refresh = rate;
-       wl_list_insert(&output->mode_list, &mode->link);
-
-       return mode;
-}
-
-static struct weston_mode *
-vnc_ensure_matching_mode(struct vnc_output *output,
-                        struct weston_mode *target)
-{
-       struct vnc_backend *backend = output->backend;
-       struct weston_mode *local;
-
-       wl_list_for_each(local, &output->base.mode_list, link) {
-               if ((local->width == target->width) &&
-                   (local->height == target->height))
-                       return local;
-       }
-
-       return vnc_insert_new_mode(&output->base, target->width, target->height,
-                                  backend->vnc_monitor_refresh_rate);
-}
-
 static int
 vnc_switch_mode(struct weston_output *base, struct weston_mode *target_mode)
 {
        struct vnc_output *output = to_vnc_output(base);
-       struct weston_mode *local_mode;
        struct weston_size fb_size;
 
        assert(output);
 
-       local_mode = vnc_ensure_matching_mode(output, target_mode);
-
-       if (local_mode == base->current_mode)
-               return 0;
-
-       base->current_mode->flags &= ~WL_OUTPUT_MODE_CURRENT;
-
-       base->current_mode = base->native_mode = local_mode;
-       base->current_mode->flags |= WL_OUTPUT_MODE_CURRENT;
+       weston_output_set_single_mode(base, target_mode);
 
        fb_size.width = target_mode->width;
        fb_size.height = target_mode->height;
@@ -1015,7 +974,6 @@
 {
        struct vnc_output *output = to_vnc_output(base);
        struct vnc_backend *backend = output->backend;
-       struct weston_mode *current_mode;
        struct weston_mode init_mode;
 
        /* We can only be called once. */
@@ -1027,10 +985,7 @@
        init_mode.height = height;
        init_mode.refresh = backend->vnc_monitor_refresh_rate;
 
-       current_mode = vnc_ensure_matching_mode(output, &init_mode);
-       current_mode->flags = WL_OUTPUT_MODE_CURRENT | WL_OUTPUT_MODE_PREFERRED;
-
-       output->base.current_mode = output->base.native_mode = current_mode;
+       weston_output_set_single_mode(base, &init_mode);
 
        output->base.start_repaint_loop = vnc_output_start_repaint_loop;
        output->base.repaint = vnc_output_repaint;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/weston-12.0.1/libweston/backend-wayland/wayland.c 
new/weston-12.0.2/libweston/backend-wayland/wayland.c
--- old/weston-12.0.1/libweston/backend-wayland/wayland.c       2023-05-25 
11:11:45.000000000 +0200
+++ new/weston-12.0.2/libweston/backend-wayland/wayland.c       2023-08-02 
17:13:49.000000000 +0200
@@ -2897,6 +2897,8 @@
 
        create_cursor(b, new_config);
 
+       b->fullscreen = new_config->fullscreen;
+
        b->formats_count = ARRAY_LENGTH(wayland_formats);
        b->formats = pixel_format_get_array(wayland_formats, b->formats_count);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/weston-12.0.1/libweston/compositor.c 
new/weston-12.0.2/libweston/compositor.c
--- old/weston-12.0.1/libweston/compositor.c    2023-05-25 11:11:45.000000000 
+0200
+++ new/weston-12.0.2/libweston/compositor.c    2023-08-02 17:13:49.000000000 
+0200
@@ -7045,6 +7045,45 @@
        return &output->color_characteristics;
 }
 
+WL_EXPORT void
+weston_output_set_single_mode(struct weston_output *output,
+                             struct weston_mode *target)
+{
+       struct weston_mode *iter, *local = NULL, *mode;
+
+       wl_list_for_each(iter, &output->mode_list, link) {
+               assert(!local);
+
+               if ((iter->width == target->width) &&
+                   (iter->height == target->height) &&
+                   (iter->refresh == target->refresh)) {
+                       mode = iter;
+                       goto out;
+               } else {
+                       local = iter;
+               }
+       }
+       /* Make sure we create the new one before freeing the old one
+        * because some mode switch code uses pointer comparisons! If
+        * we freed the old mode first, malloc could theoretically give
+        * us back the same pointer.
+        */
+       mode = xzalloc(sizeof *mode);
+       mode->width = target->width;
+       mode->height = target->height;
+       mode->refresh = target->refresh;
+       mode->flags = WL_OUTPUT_MODE_CURRENT | WL_OUTPUT_MODE_PREFERRED;
+       wl_list_insert(&output->mode_list, &mode->link);
+out:
+       output->current_mode = mode;
+       output->native_mode = mode;
+
+       if (local) {
+               wl_list_remove(&local->link);
+               free(local);
+       }
+}
+
 /** Initializes a weston_output object with enough data so
  ** an output can be configured.
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/weston-12.0.1/libweston/data-device.c 
new/weston-12.0.2/libweston/data-device.c
--- old/weston-12.0.1/libweston/data-device.c   2023-05-25 11:11:45.000000000 
+0200
+++ new/weston-12.0.2/libweston/data-device.c   2023-08-02 17:13:49.000000000 
+0200
@@ -972,6 +972,7 @@
                icon->committed_private = drag;
                weston_surface_set_label_func(icon,
                                        pointer_drag_surface_get_label);
+               drag->base.offset = weston_coord_surface(0, 0, icon);
        } else {
                drag->base.icon = NULL;
        }
@@ -990,7 +991,6 @@
        if (keyboard)
                weston_keyboard_start_grab(keyboard, &drag->base.keyboard_grab);
 
-       drag->base.offset = weston_coord_surface(0, 0, icon);
        return 0;
 }
 
@@ -1036,6 +1036,7 @@
                icon->committed_private = drag;
                weston_surface_set_label_func(icon,
                                        touch_drag_surface_get_label);
+               drag->base.offset = weston_coord_surface(0, 0, icon);
        } else {
                drag->base.icon = NULL;
        }
@@ -1055,7 +1056,6 @@
 
        drag_grab_touch_focus(drag);
 
-       drag->base.offset = weston_coord_surface(0, 0, icon);
        return 0;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/weston-12.0.1/libweston/libweston-internal.h 
new/weston-12.0.2/libweston/libweston-internal.h
--- old/weston-12.0.1/libweston/libweston-internal.h    2023-05-25 
11:11:45.000000000 +0200
+++ new/weston-12.0.2/libweston/libweston-internal.h    2023-08-02 
17:13:49.000000000 +0200
@@ -260,6 +260,10 @@
 void
 weston_output_disable_planes_decr(struct weston_output *output);
 
+void
+weston_output_set_single_mode(struct weston_output *output,
+                             struct weston_mode *target);
+
 /* weston_plane */
 
 void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/weston-12.0.1/man/weston.man 
new/weston-12.0.2/man/weston.man
--- old/weston-12.0.1/man/weston.man    2023-05-25 11:11:45.000000000 +0200
+++ new/weston-12.0.2/man/weston.man    2023-08-02 17:13:49.000000000 +0200
@@ -207,6 +207,7 @@
 connect to the right server automatically.
 .BR \-\-version
 Print the program version.
+.TP
 \fB\-\-wait-for-debugger\fR
 Raises SIGSTOP before initializing the compositor. This allows the user to
 attach with a debugger and continue execution by sending SIGCONT. This is
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/weston-12.0.1/meson.build 
new/weston-12.0.2/meson.build
--- old/weston-12.0.1/meson.build       2023-05-25 11:11:45.000000000 +0200
+++ new/weston-12.0.2/meson.build       2023-08-02 17:13:49.000000000 +0200
@@ -1,6 +1,6 @@
 project('weston',
        'c',
-       version: '12.0.1',
+       version: '12.0.2',
        default_options: [
                'warning_level=3',
                'c_std=gnu99',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/weston-12.0.1/tests/weston-test-client-helper.c 
new/weston-12.0.2/tests/weston-test-client-helper.c
--- old/weston-12.0.1/tests/weston-test-client-helper.c 2023-05-25 
11:11:45.000000000 +0200
+++ new/weston-12.0.2/tests/weston-test-client-helper.c 2023-08-02 
17:13:49.000000000 +0200
@@ -1705,6 +1705,9 @@
 
        client_roundtrip(client);
 
+       assert(capt.width != 0 && capt.height != 0 && capt.drm_format != 0 &&
+              "capture source not available");
+
        buf = create_shm_buffer(client,
                                capt.width, capt.height, capt.drm_format);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/weston-12.0.1/xwayland/window-manager.c 
new/weston-12.0.2/xwayland/window-manager.c
--- old/weston-12.0.1/xwayland/window-manager.c 2023-05-25 11:11:45.000000000 
+0200
+++ new/weston-12.0.2/xwayland/window-manager.c 2023-08-02 17:13:49.000000000 
+0200
@@ -3272,7 +3272,9 @@
        } else if (window->override_redirect) {
                xwayland_interface->set_xwayland(window->shsurf,
                                                 window->x, window->y);
-       } else if (window->transient_for && window->transient_for->surface) {
+       } else if (window->transient_for &&
+                  !window->transient_for->override_redirect &&
+                  window->transient_for->surface) {
                parent = window->transient_for;
                if (weston_wm_window_type_inactive(window)) {
                        xwayland_interface->set_transient(window->shsurf,

Reply via email to