Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libxkbcommon for openSUSE:Factory 
checked in at 2025-10-30 17:09:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libxkbcommon (Old)
 and      /work/SRC/openSUSE:Factory/.libxkbcommon.new.1980 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libxkbcommon"

Thu Oct 30 17:09:37 2025 rev:53 rq:1314311 version:1.12.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/libxkbcommon/libxkbcommon.changes        
2025-10-23 16:35:26.925342101 +0200
+++ /work/SRC/openSUSE:Factory/.libxkbcommon.new.1980/libxkbcommon.changes      
2025-10-30 17:09:46.510528198 +0100
@@ -1,0 +2,9 @@
+Wed Oct 29 10:14:28 UTC 2025 - Jan Engelhardt <[email protected]>
+
+- Update to release 1.12.3
+  * Fixed `xkbcli keymap-dump` being kinda broken on Wayland
+    because it would commit an XDG surface without a role object.
+  * X11: Hardened against some malformed XKB responses with
+    erroneous modifiers or LEDs counts.
+
+-------------------------------------------------------------------

Old:
----
  xkbcommon-1.12.2.tar.gz

New:
----
  xkbcommon-1.12.3.tar.gz

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

Other differences:
------------------
++++++ libxkbcommon.spec ++++++
--- /var/tmp/diff_new_pack.10x2Qk/_old  2025-10-30 17:09:47.482569162 +0100
+++ /var/tmp/diff_new_pack.10x2Qk/_new  2025-10-30 17:09:47.482569162 +0100
@@ -23,7 +23,7 @@
 %endif
 
 Name:           libxkbcommon
-Version:        1.12.2
+Version:        1.12.3
 Release:        0
 Summary:        Library for handling xkb descriptions
 License:        MIT

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.10x2Qk/_old  2025-10-30 17:09:47.518570679 +0100
+++ /var/tmp/diff_new_pack.10x2Qk/_new  2025-10-30 17:09:47.522570848 +0100
@@ -1,5 +1,5 @@
-mtime: 1760987366
-commit: 3a768f9d79bcdc49350e7a97cfb3605ebd9030034ab3239a67dd6370bbe6c50c
+mtime: 1761732881
+commit: 2027205c96d0ae06d06040a7fdb93ef1cae6a2259bf09f1ed296a04ca56c418f
 url: https://src.opensuse.org/jengelh/libxkbcommon
 revision: master
 

++++++ build.specials.obscpio ++++++

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2025-10-29 11:15:44.000000000 +0100
@@ -0,0 +1 @@
+.osc

++++++ xkbcommon-1.12.2.tar.gz -> xkbcommon-1.12.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libxkbcommon-xkbcommon-1.12.2/.github/workflows/windows.yml 
new/libxkbcommon-xkbcommon-1.12.3/.github/workflows/windows.yml
--- old/libxkbcommon-xkbcommon-1.12.2/.github/workflows/windows.yml     
2025-10-20 19:00:04.000000000 +0200
+++ new/libxkbcommon-xkbcommon-1.12.3/.github/workflows/windows.yml     
2025-10-29 07:49:13.000000000 +0100
@@ -14,6 +14,11 @@
     runs-on: windows-2022
     permissions:
       contents: read
+    strategy:
+      matrix:
+        cc: ['cl', 'clang-cl']
+    env:
+      CC: ${{matrix.cc}}
     steps:
       - uses: actions/checkout@v5
         with:
@@ -22,13 +27,11 @@
         with:
           python-version: '3.12'
       - name: Install dependencies
-        shell: powershell
+        shell: cmd
         run: |
           # Jinja2 is needed for merge-modes tests
           python -m pip install --upgrade meson Jinja2
-          Invoke-WebRequest -Uri 
https://github.com/lexxmark/winflexbison/releases/download/v2.5.23/win_flex_bison-2.5.23.zip
 -OutFile win_flex_bison.zip
-          Expand-Archive -Path win_flex_bison.zip -DestinationPath bin
-          Write-Output ((Get-Location).ToString() + "./bin") | Out-File 
-Append -FilePath $env:GITHUB_PATH -Encoding utf8
+          choco install -y winflexbison3
       - name: Setup
         shell: cmd
         run: |
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libxkbcommon-xkbcommon-1.12.2/NEWS.md 
new/libxkbcommon-xkbcommon-1.12.3/NEWS.md
--- old/libxkbcommon-xkbcommon-1.12.2/NEWS.md   2025-10-20 19:00:04.000000000 
+0200
+++ new/libxkbcommon-xkbcommon-1.12.3/NEWS.md   2025-10-29 07:49:13.000000000 
+0100
@@ -1,3 +1,40 @@
+libxkbcommon [1.12.3] – 2025-10-29
+==================================
+
+[1.12.3]: https://github.com/xkbcommon/libxkbcommon/tree/xkbcommon-1.12.3
+
+## API
+
+### Fixes
+
+- X11: Hardened against some malformed XKB responses with erroneous modifiers
+  or LEDs counts.
+
+## Tools
+
+### Fixes
+
+- Fixed support for Windows compilers other than MSVC
+  ([#897](https://github.com/xkbcommon/libxkbcommon/pull/897),
+  [#898](https://github.com/xkbcommon/libxkbcommon/pull/898),
+  [#899](https://github.com/xkbcommon/libxkbcommon/pull/899)).
+
+  Contributed by Rosen Penev
+
+- Fixed errors in Wayland tools
+  ([#900](https://github.com/xkbcommon/libxkbcommon/pull/900)).
+
+  Contributed by Ronan Pigott
+
+## Build system
+
+### Fixes
+
+- Fixed build setup failing in cross-compiling setups where the build
+  machine cannot run the host binaries
+  ([#885](https://github.com/xkbcommon/libxkbcommon/issues/885)).
+
+
 libxkbcommon [1.12.2] – 2025-10-20
 ==================================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libxkbcommon-xkbcommon-1.12.2/meson.build 
new/libxkbcommon-xkbcommon-1.12.3/meson.build
--- old/libxkbcommon-xkbcommon-1.12.2/meson.build       2025-10-20 
19:00:04.000000000 +0200
+++ new/libxkbcommon-xkbcommon-1.12.3/meson.build       2025-10-29 
07:49:13.000000000 +0100
@@ -1,7 +1,7 @@
 project(
     'libxkbcommon',
     'c',
-    version: '1.12.2',
+    version: '1.12.3',
     default_options: [
         'c_std=c11',
         'warning_level=3',
@@ -185,19 +185,34 @@
         configh_data.set('PATH_MAX', 4096)
     endif
 endif
+has_glibc = cc.has_function(
+    'gnu_get_libc_version',
+    prefix: '#include <gnu/libc-version.h>'
+)
+has_compose_locale_fallback = false
 if cc.has_header_symbol('locale.h', 'newlocale', prefix: system_ext_define)
     # Use newlocale only if it fails on missing locales
-    r = cc.run(
-        '''
-        #define _GNU_SOURCE
-        #include <locale.h>
-        int main(void){
-            locale_t loc = newlocale(LC_ALL_MASK, "¡NONSENSE!", (locale_t) 0);
-            return (loc != (locale_t) 0);
-        }''',
-        name: 'newlocale fails on invalid locales',
-    )
-    if r.compiled() and r.returncode() == 0
+    if meson.can_run_host_binaries()
+        # Check newlocale implementation
+        r = cc.run(
+            '''
+            #define _GNU_SOURCE
+            #include <locale.h>
+            int main(void){
+                locale_t loc = newlocale(LC_ALL_MASK, "¡NONSENSE!", (locale_t) 
0);
+                return (loc != (locale_t) 0);
+            }''',
+            name: 'newlocale fails on invalid locales',
+        )
+        if r.compiled() and r.returncode() == 0
+            has_compose_locale_fallback = true
+        endif
+    elif has_glibc
+        # Cannot check implementation, so enable only for implementations
+        # known to failed on missing locales.
+        has_compose_locale_fallback = true
+    endif
+    if has_compose_locale_fallback
         configh_data.set('HAVE_NEWLOCALE', 1)
     endif
 endif
@@ -1350,6 +1365,7 @@
       'c_args': get_option('c_args'),
       'c_link_args': get_option('c_link_args'),
       'yacc': yacc.full_path() + ' ' + yacc.version(),
+      'glibc': has_glibc,
     }, section: 'Compiler')
     summary({
       'prefix': get_option('prefix'),
@@ -1365,6 +1381,7 @@
       'tools': get_option('enable-tools'),
       'wayland': get_option('enable-wayland'),
       'x11': get_option('enable-x11'),
+      'compose locale fallback': has_compose_locale_fallback,
     }, section: 'Features')
     summary({
       'layout': get_option('default-layout'),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libxkbcommon-xkbcommon-1.12.2/src/utils.h 
new/libxkbcommon-xkbcommon-1.12.3/src/utils.h
--- old/libxkbcommon-xkbcommon-1.12.2/src/utils.h       2025-10-20 
19:00:04.000000000 +0200
+++ new/libxkbcommon-xkbcommon-1.12.3/src/utils.h       2025-10-29 
07:49:13.000000000 +0100
@@ -32,8 +32,10 @@
 # ifndef S_ISREG
 #  define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
 # endif
+#ifdef _MSC_VER
 typedef SSIZE_T ssize_t;
 #endif
+#endif
 
 #include "darray.h"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libxkbcommon-xkbcommon-1.12.2/src/x11/keymap.c 
new/libxkbcommon-xkbcommon-1.12.3/src/x11/keymap.c
--- old/libxkbcommon-xkbcommon-1.12.2/src/x11/keymap.c  2025-10-20 
19:00:04.000000000 +0200
+++ new/libxkbcommon-xkbcommon-1.12.3/src/x11/keymap.c  2025-10-29 
07:49:13.000000000 +0100
@@ -9,6 +9,7 @@
 
 #include "xkbcommon/xkbcommon.h"
 #include "atom.h"
+#include "keymap.h"
 #include "x11-priv.h"
 
 /*
@@ -564,7 +565,9 @@
 
     keymap->mods.num_mods =
         NUM_REAL_MODS + MIN(msb_pos(reply->virtualMods), NUM_VMODS);
+    FAIL_UNLESS(keymap->mods.num_mods <= XKB_MAX_MODS);
 
+    static_assert(NUM_REAL_MODS + NUM_VMODS <= XKB_MAX_MODS, "");
     for (unsigned i = 0; i < NUM_VMODS; i++) {
         if (reply->virtualMods & (1u << i)) {
             uint8_t wire = *iter;
@@ -578,6 +581,9 @@
     }
 
     return true;
+
+fail:
+    return false;
 }
 
 static bool
@@ -742,7 +748,9 @@
         xcb_xkb_get_indicator_map_maps_iterator(reply);
 
     keymap->num_leds = msb_pos(reply->which);
+    FAIL_UNLESS(keymap->num_leds <= XKB_MAX_LEDS);
 
+    static_assert(XKB_MAX_LEDS == NUM_INDICATORS, "");
     for (unsigned i = 0; i < NUM_INDICATORS; i++) {
         if (reply->which & (UINT32_C(1) << i)) {
             xcb_xkb_indicator_map_t *wire = iter.data;
@@ -782,6 +790,9 @@
     }
 
     return true;
+
+fail:
+    return false;
 }
 
 static bool
@@ -987,7 +998,9 @@
      */
     keymap->mods.num_mods =
         NUM_REAL_MODS + MIN(msb_pos(reply->virtualMods), NUM_VMODS);
+    FAIL_UNLESS(keymap->mods.num_mods <= XKB_MAX_MODS);
 
+    static_assert(NUM_REAL_MODS + NUM_VMODS <= XKB_MAX_MODS, "");
     for (unsigned i = 0; i < NUM_VMODS; i++) {
         if (reply->virtualMods & (1u << i)) {
             xcb_atom_t wire = *iter;
@@ -1000,6 +1013,9 @@
     }
 
     return true;
+
+fail:
+    return false;
 }
 
 static bool
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libxkbcommon-xkbcommon-1.12.2/src/xkbcomp/keymap.c 
new/libxkbcommon-xkbcommon-1.12.3/src/xkbcomp/keymap.c
--- old/libxkbcommon-xkbcommon-1.12.2/src/xkbcomp/keymap.c      2025-10-20 
19:00:04.000000000 +0200
+++ new/libxkbcommon-xkbcommon-1.12.3/src/xkbcomp/keymap.c      2025-10-29 
07:49:13.000000000 +0100
@@ -362,8 +362,8 @@
      *   key entries without overlap with the alias entries.
      * - In the unlikely event that this is not the case, we need to realloc.
      */
-#ifdef _MSC_VER
-    /* MSVC does not pack bit fields as efficiently as GCC and Clang */
+#ifdef _WIN32
+    /* Bit fields are not packed on Windows as efficiently as other platforms 
*/
     static_assert(sizeof(struct xkb_key_alias) == sizeof(KeycodeMatch), "");
 #else
     static_assert(sizeof(struct xkb_key_alias) == 2 * sizeof(KeycodeMatch), 
"");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libxkbcommon-xkbcommon-1.12.2/tools/interactive-wayland.c 
new/libxkbcommon-xkbcommon-1.12.3/tools/interactive-wayland.c
--- old/libxkbcommon-xkbcommon-1.12.2/tools/interactive-wayland.c       
2025-10-20 19:00:04.000000000 +0200
+++ new/libxkbcommon-xkbcommon-1.12.3/tools/interactive-wayland.c       
2025-10-29 07:49:13.000000000 +0100
@@ -86,6 +86,7 @@
 static struct xkb_keymap *custom_keymap = NULL;
 #endif
 
+#ifndef KEYMAP_DUMP
 static void
 surface_configure(void *data, struct xdg_surface *surface,
                   uint32_t serial)
@@ -100,7 +101,6 @@
     surface_configure,
 };
 
-#ifndef KEYMAP_DUMP
 #ifdef HAVE_MKOSTEMP
 static int
 create_tmpfile_cloexec(char *tmpname)
@@ -353,7 +353,6 @@
     toplevel_configure,
     toplevel_close
 };
-#endif
 
 static void surface_create(struct interactive_dpy *inter)
 {
@@ -361,7 +360,6 @@
     inter->xdg_surf = xdg_wm_base_get_xdg_surface(inter->shell, 
inter->wl_surf);
     xdg_surface_add_listener(inter->xdg_surf, &surface_listener, inter);
 
-#ifndef KEYMAP_DUMP
     /* Create a window only for the interactive tool */
     inter->xdg_top = xdg_surface_get_toplevel(inter->xdg_surf);
     xdg_toplevel_add_listener(inter->xdg_top, &toplevel_listener, inter);
@@ -377,10 +375,10 @@
                 inter->decoration, ZXDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE
             );
     }
-#endif
 
     wl_surface_commit(inter->wl_surf);
 }
+#endif
 
 static void
 shell_ping(void *data, struct xdg_wm_base *shell, uint32_t serial)
@@ -783,10 +781,14 @@
     wl_list_for_each_safe(seat, tmp, &inter->seats, link)
         seat_destroy(seat);
 
-    if (inter->xdg_surf)
-        xdg_surface_destroy(inter->xdg_surf);
+    if (inter->decoration)
+        zxdg_toplevel_decoration_v1_destroy(inter->decoration);
+    if (inter->decoration_manager)
+        zxdg_decoration_manager_v1_destroy(inter->decoration_manager);
     if (inter->xdg_top)
         xdg_toplevel_destroy(inter->xdg_top);
+    if (inter->xdg_surf)
+        xdg_surface_destroy(inter->xdg_surf);
     if (inter->wl_surf)
         wl_surface_destroy(inter->wl_surf);
     if (inter->shell)
@@ -797,10 +799,6 @@
         wl_shm_destroy(inter->shm);
     if (inter->buf)
         wl_buffer_destroy(inter->buf);
-    if (inter->decoration)
-        zxdg_toplevel_decoration_v1_destroy(inter->decoration);
-    if (inter->decoration_manager)
-        zxdg_decoration_manager_v1_destroy(inter->decoration_manager);
 
     /* Do one last roundtrip to try to destroy our wl_buffer. */
     wl_display_roundtrip(inter->dpy);
@@ -1096,7 +1094,9 @@
         goto err_conn;
     }
 
+#ifndef KEYMAP_DUMP
     surface_create(&inter);
+#endif
 
     tools_disable_stdin_echo();
     do {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libxkbcommon-xkbcommon-1.12.2/tools/tools-common.c 
new/libxkbcommon-xkbcommon-1.12.3/tools/tools-common.c
--- old/libxkbcommon-xkbcommon-1.12.2/tools/tools-common.c      2025-10-20 
19:00:04.000000000 +0200
+++ new/libxkbcommon-xkbcommon-1.12.3/tools/tools-common.c      2025-10-29 
07:49:13.000000000 +0100
@@ -40,7 +40,7 @@
 #include "src/keymap.h"
 #include "src/messages-codes.h"
 
-#ifdef _WIN32
+#if defined(_WIN32) && !defined(S_ISFIFO)
 #define S_ISFIFO(mode) 0
 #endif
 

Reply via email to