[arch-commits] Commit in libxkbcommon/trunk (2 files)

Jan Steffens heftig at archlinux.org
Wed Apr 7 08:40:19 UTC 2021


    Date: Wednesday, April 7, 2021 @ 08:40:18
  Author: heftig
Revision: 411680

1.2.0-2: FS#70293

Added:
  libxkbcommon/trunk/0001-x11-fix-xkb_x11_keymap_new_from_device-failing-when-.patch
Modified:
  libxkbcommon/trunk/PKGBUILD

-----------------------------------------------------------------+
 0001-x11-fix-xkb_x11_keymap_new_from_device-failing-when-.patch |   45 ++++++++++
 PKGBUILD                                                        |   11 +-
 2 files changed, 53 insertions(+), 3 deletions(-)

Added: 0001-x11-fix-xkb_x11_keymap_new_from_device-failing-when-.patch
===================================================================
--- 0001-x11-fix-xkb_x11_keymap_new_from_device-failing-when-.patch	                        (rev 0)
+++ 0001-x11-fix-xkb_x11_keymap_new_from_device-failing-when-.patch	2021-04-07 08:40:18 UTC (rev 411680)
@@ -0,0 +1,45 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Ran Benita <ran at unusedvar.com>
+Date: Wed, 7 Apr 2021 10:47:15 +0300
+Subject: [PATCH] x11: fix xkb_x11_keymap_new_from_device failing when a level
+ name is empty
+
+The numpad:mac option doesn't specify a name for the first level:
+
+    // On Mac keypads, level 1 and 2 are swapped.
+    partial xkb_types "mac" {
+        type "KEYPAD" {
+            modifiers = None;
+            map[None] = Level2;
+            level_name[Level2] = "Number";
+        };
+        include "extra(keypad)"
+    };
+
+This means the atom for level name is XCB_ATOM_NONE. We tried to get its
+name, which fails. This regressed in 40c00b472144d1684d2fb97cafef39.
+
+Instead, translate it to XKB_ATOM_NONE, same as the previous behavior.
+
+Fixes: https://github.com/xkbcommon/libxkbcommon/issues/229
+Signed-off-by: Ran Benita <ran at unusedvar.com>
+---
+ src/x11/util.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/x11/util.c b/src/x11/util.c
+index c4609e4..2ea92a2 100644
+--- a/src/x11/util.c
++++ b/src/x11/util.c
+@@ -169,7 +169,10 @@ void
+ x11_atom_interner_adopt_atom(struct x11_atom_interner *interner,
+                              const xcb_atom_t atom, xkb_atom_t *out)
+ {
+-    *out = 0;
++    *out = XKB_ATOM_NONE;
++
++    if (atom == XCB_ATOM_NONE)
++        return;
+ 
+     /* Can be NULL in case the malloc failed. */
+     struct x11_atom_cache *cache = get_cache(interner->ctx, interner->conn);

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2021-04-07 07:42:25 UTC (rev 411679)
+++ PKGBUILD	2021-04-07 08:40:18 UTC (rev 411680)
@@ -5,7 +5,7 @@
 pkgbase=libxkbcommon
 pkgname=(libxkbcommon libxkbcommon-doc libxkbcommon-x11)
 pkgver=1.2.0
-pkgrel=1
+pkgrel=2
 pkgdesc="Keymap handling library for toolkits and window systems"
 url="https://xkbcommon.org/"
 arch=(x86_64)
@@ -14,8 +14,10 @@
              git meson xorgproto)
 checkdepends=(xorg-server-xvfb libgl)
 _commit=086353b380de05eb20519c5071354015670baad2  # tags/xkbcommon-1.2.0^0
-source=("git+https://github.com/xkbcommon/libxkbcommon#commit=$_commit")
-sha256sums=('SKIP')
+source=("git+https://github.com/xkbcommon/libxkbcommon#commit=$_commit"
+        0001-x11-fix-xkb_x11_keymap_new_from_device-failing-when-.patch)
+sha256sums=('SKIP'
+            '86e90d6150708d38a88ff7c3e25afca831170de676cbb26f08634d1996431b0a')
 
 pkgver() {
   cd $pkgbase
@@ -24,6 +26,9 @@
 
 prepare() {
   cd $pkgbase
+
+  # https://bugs.archlinux.org/task/70293
+  git apply -3 ../0001-x11-fix-xkb_x11_keymap_new_from_device-failing-when-.patch
 }
 
 build() {



More information about the arch-commits mailing list