Compare commits

2 Commits
1.1 ... main

9 changed files with 306 additions and 8 deletions

18
_service Normal file
View File

@@ -0,0 +1,18 @@
<?xml version="1.0"?>
<services>
<service name="obs_scm" mode="manual">
<param name="scm">git</param>
<param name="url">https://gitlab.gnome.org/GNOME/at-spi2-core.git</param>
<param name="revision">2.56.3</param>
<param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
<param name="versionrewrite-pattern">(.*)\+0</param>
<param name="versionrewrite-replacement">\1</param>
<param name="changesgenerate">disable</param>
</service>
<service name="tar" mode="buildtime"/>
<service name="recompress" mode="buildtime">
<param name="file">*.tar</param>
<param name="compression">zst</param>
</service>
<service name="set_version" mode="manual" />
</services>

BIN
at-spi2-core-2.50.0.tar.xz (Stored with Git LFS)

Binary file not shown.

BIN
at-spi2-core-2.56.3.obscpio (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -0,0 +1,47 @@
From 902be91dc466dd566c38850320ce1b6f421e3a03 Mon Sep 17 00:00:00 2001
From: Mike Gorse <mgorse@suse.com>
Date: Wed, 9 Jul 2025 08:19:33 -0500
Subject: [PATCH] device: Fix a memory leak when removing a key grab
---
atspi/atspi-device-a11y-manager.c | 4 +++-
atspi/atspi-device-x11.c | 4 +++-
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/atspi/atspi-device-a11y-manager.c b/atspi/atspi-device-a11y-manager.c
index 740f91a4..e590dcb0 100644
--- a/atspi/atspi-device-a11y-manager.c
+++ b/atspi/atspi-device-a11y-manager.c
@@ -316,9 +316,11 @@ atspi_device_a11y_manager_remove_key_grab (AtspiDevice *device, guint id)
manager_device->grabbed_keys = g_slist_remove (manager_device->grabbed_keys, entry);
g_free (entry);
schedule_refresh_grabs (manager_device);
- return;
+ break;
}
}
+
+ g_free (kd);
}
static void
diff --git a/atspi/atspi-device-x11.c b/atspi/atspi-device-x11.c
index d8fb6c1c..00d5eb58 100644
--- a/atspi/atspi-device-x11.c
+++ b/atspi/atspi-device-x11.c
@@ -709,9 +709,11 @@ atspi_device_x11_remove_key_grab (AtspiDevice *device, guint id)
{
disable_key_grab (x11_device, other);
priv->key_grabs = g_slist_remove (priv->key_grabs, other);
- return;
+ break;
}
}
+
+ g_free (kd);
}
static guint
--
2.50.0

View File

@@ -0,0 +1,44 @@
From: Mike Gorse <mgorse@suse.com>
Subject: device-a11y-manager: Add grabs with numlock and capslock
This is the equivalent of applying commits 2be90dac and and 1e1000d5 from
the gnome-48 branch. It ensures that requested key grabs remain in effect
when num lock or caps lock are enabled.
diff -urp at-spi2-core-2.56.3.orig/atspi/atspi-device-a11y-manager.c at-spi2-core-2.56.3/atspi/atspi-device-a11y-manager.c
--- at-spi2-core-2.56.3.orig/atspi/atspi-device-a11y-manager.c 2025-07-11 14:28:52.371304458 -0500
+++ at-spi2-core-2.56.3/atspi/atspi-device-a11y-manager.c 2025-07-11 14:28:54.932282887 -0500
@@ -111,6 +111,18 @@ find_insertion_point_for_modifier (Atspi
return NULL;
}
+#define MODIFIER_NUMLOCK (1 << ATSPI_MODIFIER_META)
+#define MODIFIER_CAPSLOCK (1 << ATSPI_MODIFIER_SHIFTLOCK)
+
+static void
+add_grab_to_builder (GVariantBuilder *builder, guint32 keysym, guint32 modifiers)
+{
+ g_variant_builder_open (builder, G_VARIANT_TYPE ("(uu)"));
+ g_variant_builder_add (builder, "u", keysym);
+ g_variant_builder_add (builder, "u", modifiers);
+ g_variant_builder_close (builder);
+}
+
static void
refresh_grabs (AtspiDeviceA11yManager *manager_device)
{
@@ -129,10 +141,10 @@ refresh_grabs (AtspiDeviceA11yManager *m
for (l = manager_device->grabbed_keys; l; l = l->next)
{
AtspiDeviceA11yManagerKey *entry = l->data;
- g_variant_builder_open (&builder, G_VARIANT_TYPE ("(uu)"));
- g_variant_builder_add (&builder, "u", entry->keysym);
- g_variant_builder_add (&builder, "u", entry->modifiers);
- g_variant_builder_close (&builder);
+ add_grab_to_builder (&builder, entry->keysym, entry->modifiers);
+ add_grab_to_builder (&builder, entry->keysym, entry->modifiers | MODIFIER_NUMLOCK);
+ add_grab_to_builder (&builder, entry->keysym, entry->modifiers | MODIFIER_CAPSLOCK);
+ add_grab_to_builder (&builder, entry->keysym, entry->modifiers | MODIFIER_CAPSLOCK | MODIFIER_NUMLOCK);
}
g_variant_builder_close (&builder);
g_dbus_proxy_call_sync (manager_device->keyboard_monitor,

View File

@@ -0,0 +1,43 @@
From a9fb853fea178875247f0e8615d5714b60b77f8b Mon Sep 17 00:00:00 2001
From: Mike Gorse <mgorse@suse.com>
Date: Wed, 9 Jul 2025 16:15:22 -0500
Subject: [PATCH] atk-bridge: Don't crash when requesting a plug if not
activated
This isn't really a complete fix. The format of the plug string relies on
an application's name on the accessibility bus, but, if, for instance, the
screen reader is turned off and back on, then it is possible for the
accessibility bus to be taken down and later recreated (see #193). We should
perhaps construct some sort of well-known name that can be set on the bus,
while ensuring that we don't conflict with any other application.
But this is a quick fix that is at least an improvement over a crash.
Closes #198
---
atk-adaptor/bridge.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/atk-adaptor/bridge.c b/atk-adaptor/bridge.c
index 4b71128b..a3526406 100644
--- a/atk-adaptor/bridge.c
+++ b/atk-adaptor/bridge.c
@@ -514,10 +514,14 @@ static AtkSocketClass *socket_class;
static gchar *
get_plug_id (AtkPlug *plug)
{
- const char *uname = dbus_bus_get_unique_name (spi_global_app_data->bus);
+ const char *uname;
gchar *path;
GString *str = g_string_new (NULL);
+ if (!spi_global_app_data || !spi_global_app_data->bus)
+ return NULL;
+
+ uname = dbus_bus_get_unique_name (spi_global_app_data->bus);
path = spi_register_object_to_path (spi_global_register, G_OBJECT (plug));
g_string_printf (str, "%s:%s", uname, path);
g_free (path);
--
2.50.0

View File

@@ -1,3 +1,141 @@
-------------------------------------------------------------------
Fri Jul 11 19:40:13 UTC 2025 - Michael Gorse <mgorse@suse.com>
- Add upstream fixes:
+ at-spi2-core-grab-memory-leak.patch
+ at-spi2-core-key-grabs.patch (glgo#GNOME/at-spi2-core!193)
+ at-spi2-core-plug-crash.patch (glgo#GNOME/at-spi2-core#198)
-------------------------------------------------------------------
Sun Jun 29 07:12:03 UTC 2025 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 2.56.3:
+ DeviceEventController: update mouse coordinates before sending
button events
+ atspi-device-legacy: Don't crash when XkbGetMap fails
+ Return localized role name for ATSPI_ROLE_EDITBAR
-------------------------------------------------------------------
Mon Apr 28 16:08:51 UTC 2025 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 2.56.2:
+ Fix the build with glib < 2.76.
+ a11y-manager-device: Fix unmap_keysym_modifier.
-------------------------------------------------------------------
Sat Mar 29 08:43:24 UTC 2025 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 2.56.1:
+ device-a11y-manager:
- Fix crash on dispose
- Check properly for the DBus backend presence
-------------------------------------------------------------------
Sun Mar 16 08:48:00 UTC 2025 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 2.56.0:
+ Updated translations.
-------------------------------------------------------------------
Fri Feb 28 21:50:56 UTC 2025 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 2.55.90 (Unstable):
+ Support grabbing keyboard shortcuts through the new
org.freedesktop.a11y.KeyboardMonitor interface. This allows key
grabs to be supported under Wayland with the latest mutter.
-------------------------------------------------------------------
Sun Feb 2 09:36:56 UTC 2025 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 2.55.2 (Unstable):
+ Attempt to fix a use after free in the atk bridge.
+ Add a switch role.
-------------------------------------------------------------------
Tue Jan 14 17:36:54 UTC 2025 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 2.55.0.1 (Unstable):
+ Fix regression in 2.55.0 where ungrabbing keys did not work
reliably.
-------------------------------------------------------------------
Sat Jan 11 09:41:46 UTC 2025 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 2.55.0 (Unstable):
+ Improve warnings when setting a property.
+ Use the appropriate annotations for callbacks.
+ device: Support adding grabs given a keysym.
-------------------------------------------------------------------
Sat Jan 11 09:33:42 UTC 2025 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 2.54.1:
+ Fix various memory leaks.
+ Fix the build on FreeBSD.
- Switch to source service for tarball.
-------------------------------------------------------------------
Sun Sep 15 12:25:10 UTC 2024 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 2.54.0:
+ Updated translations.
-------------------------------------------------------------------
Sat Aug 31 16:56:36 UTC 2024 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 2.53.90:
+ Make ATSPI_ROLE_PUSH_BUTTON an enum value again.
+ atk: Align button role with AT-SPI one.
+ Fix warning when atspi_event_quit is called multiple times.
-------------------------------------------------------------------
Sun Mar 17 09:22:49 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- Update to version 2.52.0:
+ tests: Fix missing declaration for getpid().
-------------------------------------------------------------------
Sun Mar 10 16:25:21 UTC 2024 - Michael Gorse <mgorse@suse.com>
- Remove unused dependencies on libei and libxkbcommon-x11.
-------------------------------------------------------------------
Mon Mar 4 07:46:27 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- Update to version 2.51.91:
+ Back out code to generate mouse events on mutter. It had a
couple of unwanted side effects. Also remove dependencies on
libei and xkbcommon.
+ atk-adaptor: Fix collection role matching.
+ Have atspi_text_get_string_at_offset fall back to calling
GetTextAtOffset if GetStringAtOffset is unimplemented.
+ Don't use g_assert in the unit tests.
-------------------------------------------------------------------
Mon Feb 12 15:39:01 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- Update to version 2.51.90:
+ Add an attribute-changed signal in atk, and update libatspi
attribute cache.
+ Add GetTextSelection and SetTextSelection to Document
interface.
+ Add atspi_device_generate_mouse_event, and implement for
mutter.
+ Have atspi_device_add_key_grab return 0 if XIGrabKeycode fails.
+ xml: Add Embedded to the Socket interface.
+ Don't return uninitialized values if
atspi_component_get_size/position fail.
- Add pkgconfig(libei-1.0) BuildRequires: new dependency.
-------------------------------------------------------------------
Tue Jan 16 07:32:52 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- Update to version 2.51.0:
+ atk-adaptor: Fix critical when no table cell array is returned.
+ accessible: Do not rename deprecated methods to the new names.
+ Add HelpText property and corresponding functions in atk and
libatspi.
-------------------------------------------------------------------
Sun Jan 14 08:48:57 UTC 2024 - Yifan Jiang <yfjiang@suse.com>

4
at-spi2-core.obsinfo Normal file
View File

@@ -0,0 +1,4 @@
name: at-spi2-core
version: 2.56.3
mtime: 1751118276
commit: 1c6197ff508a1973462f69f1a77e85de9067e10a

View File

@@ -1,7 +1,7 @@
#
# spec file for package at-spi2-core
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -23,15 +23,20 @@
%define atspiconfdir %{?_distconfdir}%{!?_distconfdir:%{_sysconfdir}}
Name: at-spi2-core
Version: 2.50.0
Version: 2.56.3
Release: 0
Summary: Assistive Technology Service Provider Interface - D-Bus based implementation
License: LGPL-2.1-or-later
Group: System/GUI/GNOME
URL: https://www.gnome.org/
Source0: https://download.gnome.org/sources/at-spi2-core/2.50/%{name}-%{version}.tar.xz
Source0: %{name}-%{version}.tar.zst
Source99: baselibs.conf
# PATCH-FIX-UPSTREAM at-spi2-core-grab-memory-leak.patch mgorse@suse.com -- fix a memory leak when removing a key grab.
Patch0: at-spi2-core-grab-memory-leak.patch
# PATCH-FIX-UPSTREAM at-spi2-core-key-grabs.patch mgorse@suse.com -- also send grab variants with numlock and caps lock enabled.
Patch1: at-spi2-core-key-grabs.patch
# PATCH-FIX-UPSTREAM at-spi2-core-plug-crash.patch mgorse@suse.com -- don't crash when requesting a plug if not activated.
Patch2: at-spi2-core-plug-crash.patch
BuildRequires: fdupes
BuildRequires: meson >= 0.63.0
BuildRequires: pkgconfig
@@ -46,7 +51,6 @@ BuildRequires: pkgconfig(libsystemd)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xi)
BuildRequires: pkgconfig(xkbcommon-x11)
BuildRequires: pkgconfig(xtst)
# dbus-daemon is needed to have this work fine
Requires: (dbus-1 or dbus-broker)