Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libX11 for openSUSE:Factory checked 
in at 2025-12-04 11:21:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libX11 (Old)
 and      /work/SRC/openSUSE:Factory/.libX11.new.1939 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libX11"

Thu Dec  4 11:21:06 2025 rev:59 rq:1320983 version:1.8.12

Changes:
--------
--- /work/SRC/openSUSE:Factory/libX11/libX11.changes    2025-03-10 
17:57:46.635645399 +0100
+++ /work/SRC/openSUSE:Factory/.libX11.new.1939/libX11.changes  2025-12-04 
11:26:36.049807900 +0100
@@ -1,0 +2,7 @@
+Fri Nov 28 08:52:07 UTC 2025 - Alynx Zhou <[email protected]>
+
+- Add libX11-ignore-incompatible-XkbMapNotify.patch: Fix
+  mutter-x11-frames crash caused by keyboard layout change
+  triggered by orca screen reader. (bsc#1253076)
+
+-------------------------------------------------------------------
@@ -76,0 +84 @@
+   (bsc#1252250)
@@ -77,0 +86 @@
+   (bsc#1252250)

New:
----
  libX11-ignore-incompatible-XkbMapNotify.patch

----------(New B)----------
  New:
- Add libX11-ignore-incompatible-XkbMapNotify.patch: Fix
  mutter-x11-frames crash caused by keyboard layout change
----------(New E)----------

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

Other differences:
------------------
++++++ libX11.spec ++++++
--- /var/tmp/diff_new_pack.gWb5Ih/_old  2025-12-04 11:26:36.581830945 +0100
+++ /var/tmp/diff_new_pack.gWb5Ih/_new  2025-12-04 11:26:36.581830945 +0100
@@ -32,6 +32,8 @@
 # PATCH-FIX-UPSTREAM en-locales.diff fdo#48596 bnc#388711 -- Add missing data 
for more en locales
 Patch2:         en-locales.diff
 Patch3:         u_no-longer-crash-in-XVisualIDFromVisual.patch
+# PATCH-FIX-UPSTREAM libX11-ignore-incompatible-XkbMapNotify.patch bsc#1253076 
[email protected] -- Fix mutter-x11-frames crash due to orca screen reader
+Patch4:         libX11-ignore-incompatible-XkbMapNotify.patch
 BuildRequires:  fdupes
 BuildRequires:  libtool
 BuildRequires:  pkgconfig
@@ -121,6 +123,7 @@
 %patch -P 1
 %patch -P 2
 %patch -P 3 -p1
+%patch -P 4 -p1
 
 %build
 %configure \

++++++ libX11-ignore-incompatible-XkbMapNotify.patch ++++++
>From 7f31a215ad23adf71d1ce604487ee1e0f5121cc9 Mon Sep 17 00:00:00 2001
From: Julian Orth <[email protected]>
Date: Fri, 24 Oct 2025 20:15:37 +0200
Subject: [PATCH] Ignore XkbMapNotify events that don't belong to the core
 keyboard

Such events can contain values that are incompatible with the core
keyboard map.

Fixes a potentially fatal error when such values are later used in a
XkbGetMap request.

Signed-off-by: Julian Orth <[email protected]>
---
 src/xkb/XKBBind.c |  2 ++
 src/xkb/XKBUse.c  | 16 ++++++++++------
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/src/xkb/XKBBind.c b/src/xkb/XKBBind.c
index 467e4198..5459e42d 100644
--- a/src/xkb/XKBBind.c
+++ b/src/xkb/XKBBind.c
@@ -369,6 +369,8 @@ XkbRefreshKeyboardMapping(register XkbMapNotifyEvent * 
event)
         XkbMapChangesRec changes;
         Status rtrn;
 
+        if (!xkbi->desc || xkbi->desc->device_spec != event->device)
+            return Success;
         if (xkbi->flags & XkbMapPending)
             changes = xkbi->changes;
         else
diff --git a/src/xkb/XKBUse.c b/src/xkb/XKBUse.c
index ab5027b0..9a01a8fb 100644
--- a/src/xkb/XKBUse.c
+++ b/src/xkb/XKBUse.c
@@ -290,9 +290,11 @@ wire_to_event(Display *dpy, XEvent *re, xEvent *event)
             mev->num_modmap_keys = mn->nModMapKeys;
             mev->first_vmodmap_key = mn->firstVModMapKey;
             mev->num_vmodmap_keys = mn->nVModMapKeys;
-            XkbNoteMapChanges(&xkbi->changes, mev, XKB_XLIB_MAP_MASK);
-            if (xkbi->changes.changed)
-                xkbi->flags |= XkbMapPending;
+            if (xkbi->desc && xkbi->desc->device_spec == mn->deviceID) {
+                XkbNoteMapChanges(&xkbi->changes, mev, XKB_XLIB_MAP_MASK);
+                if (xkbi->changes.changed)
+                    xkbi->flags |= XkbMapPending;
+            }
             return True;
         }
         else if (mn->nKeySyms > 0) {
@@ -306,9 +308,11 @@ wire_to_event(Display *dpy, XEvent *re, xEvent *event)
             ev->first_keycode = mn->firstKeySym;
             ev->request = MappingKeyboard;
             ev->count = mn->nKeySyms;
-            _XkbNoteCoreMapChanges(&xkbi->changes, ev, XKB_XLIB_MAP_MASK);
-            if (xkbi->changes.changed)
-                xkbi->flags |= XkbMapPending;
+            if (xkbi->desc && xkbi->desc->device_spec == mn->deviceID) {
+                _XkbNoteCoreMapChanges(&xkbi->changes, ev, XKB_XLIB_MAP_MASK);
+                if (xkbi->changes.changed)
+                    xkbi->flags |= XkbMapPending;
+            }
             return True;
         }
     }
-- 
GitLab

Reply via email to