Skip to content

Commit 69367af

Browse files
feat: update at-spi2-core to 2.56.2-1+deb13u1
1 parent 3df8fff commit 69367af

File tree

148 files changed

+21929
-17600
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

148 files changed

+21929
-17600
lines changed

.gitlab-ci.yml

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99
# Include the parameters we need from Freedesktop CI Templates
1010
include:
1111
- local: 'ci/container_builds.yml'
12+
- component: gitlab.gnome.org/GNOME/citemplates/release-service@master
13+
inputs:
14+
dist-job-name: "opensuse-distcheck"
15+
tarball-artifact-path: "_build/meson-dist/$CI_PROJECT_NAME-$CI_COMMIT_TAG.tar.xz"
1216

1317
# Stages in the CI pipeline in which jobs will be run
1418
stages:
@@ -18,6 +22,7 @@ stages:
1822
- analysis
1923
- docs
2024
- deploy
25+
- release
2126

2227
# Enable merge request pipelines and avoid duplicate pipelines
2328
# https://docs.gitlab.com/ee/ci/yaml/index.html#switch-between-branch-pipelines-and-merge-request-pipelines
@@ -51,8 +56,8 @@ opensuse-x86_64:
5156
variables:
5257
MESON_EXTRA_FLAGS: "--buildtype=debug" # -Dwerror=true
5358
script:
54-
# See https://gitlab.gnome.org/GNOME/at-spi2-core/-/merge_requests/137 for the reason for disable_p2p
55-
- meson setup ${MESON_EXTRA_FLAGS} -Ddisable_p2p=true --prefix /usr _build .
59+
- source ci/env.sh
60+
- meson setup ${MESON_EXTRA_FLAGS} --prefix /usr _build .
5661
- meson compile -C _build
5762
- meson install -C _build
5863
- mkdir /tmp/test+dir+with+funny+chars
@@ -90,6 +95,29 @@ fedora-x86_64:
9095
paths:
9196
- "_build/meson-logs"
9297

98+
opensuse-distcheck:
99+
stage: build
100+
extends:
101+
- '.container.opensuse@x86_64'
102+
- '.fdo.distribution-image@opensuse'
103+
needs: ['opensuse-container@x86_64']
104+
variables:
105+
MESON_EXTRA_FLAGS: "--buildtype=debug" # -Dwerror=true
106+
script:
107+
- source ci/env.sh
108+
- git config --global --add safe.directory $CI_PROJECT_DIR
109+
- meson setup ${MESON_EXTRA_FLAGS} --prefix /usr _build .
110+
- meson compile -C _build
111+
- meson install -C _build
112+
- mkdir /tmp/test+dir+with+funny+chars
113+
- export XDG_RUNTIME_DIR=/tmp/test+dir+with+funny+chars # See https://gitlab.gnome.org/GNOME/at-spi2-core/-/issues/48
114+
- xvfb-run --auto-servernum dbus-run-session -- ci/run-registryd-tests.sh
115+
- xvfb-run --auto-servernum dbus-run-session -- ci/run-tests.sh
116+
- meson dist -C _build --no-tests
117+
artifacts:
118+
paths:
119+
- "_build/meson-dist/*.xz"
120+
93121
# Run static analysis on the code.
94122
#
95123
# The logs are part of the compilation stderr.
@@ -125,6 +153,7 @@ asan-build:
125153
# https://gitlab.freedesktop.org/dbus/dbus/-/issues/326
126154
LSAN_OPTIONS: "suppressions=${CI_PROJECT_DIR}/ci/address-sanitizer.supp"
127155
script:
156+
- source ci/env.sh
128157
- CC=clang meson setup ${MESON_EXTRA_FLAGS} --prefix /usr _build .
129158
- meson compile -C _build
130159
- meson install -C _build
@@ -150,8 +179,7 @@ coverage:
150179
CFLAGS: "-coverage -ftest-coverage -fprofile-arcs"
151180
script:
152181
- source ./ci/env.sh
153-
# See https://gitlab.gnome.org/GNOME/at-spi2-core/-/merge_requests/137 for the reason for disable_p2p
154-
- meson setup ${MESON_EXTRA_FLAGS} -Ddisable_p2p=true --prefix /usr _build .
182+
- meson setup ${MESON_EXTRA_FLAGS} --prefix /usr _build .
155183
- meson compile -C _build
156184
- meson install -C _build
157185
- xvfb-run --auto-servernum dbus-run-session -- ci/run-registryd-tests.sh
@@ -185,6 +213,7 @@ reference:
185213
variables:
186214
MESON_EXTRA_FLAGS: "--buildtype=release -Ddocs=true"
187215
script:
216+
- source ci/env.sh
188217
- meson setup ${MESON_EXTRA_FLAGS} --prefix /usr _build .
189218
- ninja -C _build doc/atk doc/libatspi devel-docs/html
190219
- mkdir _reference

NEWS

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,122 @@
1+
What's new in at-spi2-core 2.56.2:
2+
3+
* Fix the build with glib < 2.76.
4+
5+
* a11y-manager-device: Fix unmap_keysym_modifier.
6+
7+
What's new in at-spi2-core 2.56.1:
8+
9+
* device-a11y-manager: Fix crash on dispose
10+
11+
* device-a11y-manager: Check properly for the DBus backend presence
12+
13+
What's new in at-spi2-core 2.56.0:
14+
15+
* Updated translations.
16+
17+
What's new in at-spi2-core 2.55.90:
18+
19+
* Support grabbing keyboard shortcuts through the new
20+
org.freedesktop.a11y.KeyboardMonitor interface. This allows key grabs to
21+
be supported under Wayland with the latest mutter.
22+
23+
What's new in at-spi2-core 2.55.2:
24+
25+
* Attempt to fix a use after free in the atk bridge.
26+
27+
* Add a switch role.
28+
29+
What's new in at-spi2-core 2.55.0.1:
30+
31+
* Fix regression in 2.55.0 where ungrabbing keys did not work reliably.
32+
33+
What's new in at-spi2-core 2.55.0:
34+
35+
* Fix various memory leaks.
36+
37+
* Fix the build on FreeBSD.
38+
39+
* Improve warnings when setting a property.
40+
41+
* Use the appropriate annotations for callbacks.
42+
43+
* device: Support adding grabs given a keysym.
44+
45+
What's new in at-spi2-core 2.53.90:
46+
47+
* Make ATSPI_ROLE_PUSH_BUTTON an enum value again.
48+
49+
* atk: Align button role with AT-SPI one.
50+
51+
* Fix warning when atspi_event_quit is called multiple times.
52+
53+
What's new in at-spi2-core 2.53.1:
54+
55+
* tests: Clean up test application on SIGABRT/SIGSEGV.
56+
57+
* Set (allow-none) for nullable parameters to atspi_match_rule_new.
58+
59+
* collection: Allow specifying specific action names in match rules.
60+
61+
atk-adaptor: Fix duplicated results in GetMatchesFrom.
62+
63+
* atk-adaptor: For collections, don't return objects with 0 actions as
64+
supporting AtkAction.
65+
66+
* Rename ATSPI_ROLE_PUSH_BUTTON to ATSPI_ROLE_BUTTON.
67+
68+
What's new in at-spi2-core 2.53.0:
69+
70+
Add missing prototypes for functions to check the presence of interfaces.
71+
72+
* Replace disable_p2p with an ATSPI_DISABLE_P2P environment variable.
73+
74+
* Drop use of deprecated eaves-dropping option in dbus configuration
75+
76+
atk-adaptor: Limit amount of children to return for GetChildren
77+
78+
* Notify about HelpText attribute change.
79+
80+
* Fix possible double unref in add_accessible_from_iter.
81+
82+
What's new in at-spi2-core 2.52.0:
83+
84+
* tests: Fix missing declaration for getpid().
85+
86+
What's new in at-spi2-core 2.51.90:
87+
88+
* Back out code to generate mouse events on mutter. It had a couple of
89+
unwanted side effects. Also remove dependencies on libei and xkbcommon.
90+
91+
* atk-adaptor: Fix collection role matching.
92+
93+
* Have atspi_text_get_string_at_offset fall back to calling
94+
GetTextAtOffset if GetStringAtOffset is unimplemented.
95+
96+
* Don't use g_assert in the unit tests.
97+
98+
What's new in at-spi2-core 2.51.91:
99+
100+
Add an attribute-changed signal in atk, and update libatspi attribute cache.
101+
102+
* Add GetTextSelection and SetTextSelection to Document interface.
103+
104+
* Add atspi_device_generate_mouse_event, and implement for mutter.
105+
106+
* Have atspi_device_add_key_grab return 0 if XIGrabKeycode fails.
107+
108+
* xml: Add Embedded to the Socket interface
109+
110+
* Don't return uninitialized values if atspi_component_get_size/position fail.
111+
112+
What's new in at-spi2-core 2.51.0:
113+
114+
* atk-adaptor: Fix critical when no table cell array is returned.
115+
116+
* accessible: Do not rename deprecated methods to the new names.
117+
118+
* Add HelpText property and corresponding functions in atk and libatspi.
119+
1120
What's new in at-spi2-core 2.50.0:
2121

3122
* Fix at-spi2-atk test when running under a non-English locale.

at-spi2-core.doap

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,4 @@ communication to allow accessibility-oriented software to operate.
6767
</foaf:Person>
6868
</maintainer>
6969

70-
<!-- Marge-bot to automatically handle merge requests with successful pipelines -->
71-
72-
<maintainer>
73-
<foaf:Person>
74-
<foaf:name>Marge Bot</foaf:name>
75-
<gnome:userid>marge-bot</gnome:userid>
76-
</foaf:Person>
77-
</maintainer>
78-
7970
</Project>

atk-adaptor/accessible-cache.c

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,20 @@ spi_cache_init (SpiCache *cache)
133133
(GCallback) toplevel_added_listener, NULL);
134134
}
135135

136+
static void
137+
cache_weak_ref (gpointer data, GObject *gobj)
138+
{
139+
SpiCache *cache = SPI_CACHE (data);
140+
141+
g_hash_table_remove (cache->objects, gobj);
142+
}
143+
144+
static void
145+
spi_cache_remove_weak_ref (gpointer key, gpointer val, gpointer cache)
146+
{
147+
g_object_weak_unref (val, cache_weak_ref, cache);
148+
}
149+
136150
static void
137151
spi_cache_finalize (GObject *object)
138152
{
@@ -141,6 +155,7 @@ spi_cache_finalize (GObject *object)
141155
while (!g_queue_is_empty (cache->add_traversal))
142156
g_object_unref (G_OBJECT (g_queue_pop_head (cache->add_traversal)));
143157
g_queue_free (cache->add_traversal);
158+
g_hash_table_foreach (cache->objects, spi_cache_remove_weak_ref, cache);
144159
g_hash_table_unref (cache->objects);
145160

146161
g_signal_handlers_disconnect_by_func (spi_global_register,
@@ -169,6 +184,7 @@ remove_object (GObject *source, GObject *gobj, gpointer data)
169184
spi_register_object_to_path (spi_global_register, gobj));
170185
#endif
171186
g_signal_emit (cache, cache_signals[OBJECT_REMOVED], 0, gobj);
187+
g_object_weak_unref (G_OBJECT (gobj), cache_weak_ref, cache);
172188
g_hash_table_remove (cache->objects, gobj);
173189
}
174190
else if (g_queue_remove (cache->add_traversal, gobj))
@@ -183,6 +199,7 @@ add_object (SpiCache *cache, GObject *gobj)
183199
g_return_if_fail (G_IS_OBJECT (gobj));
184200

185201
g_hash_table_insert (cache->objects, gobj, NULL);
202+
g_object_weak_ref (G_OBJECT (gobj), cache_weak_ref, cache);
186203

187204
#ifdef SPI_ATK_DEBUG
188205
g_debug ("CACHE ADD - %s - %d - %s\n", atk_object_get_name (ATK_OBJECT (gobj)),
@@ -303,10 +320,6 @@ add_pending_items (gpointer data)
303320
{
304321
current = g_queue_pop_head (to_add);
305322

306-
/* Make sure object is registerd so we are notified if it goes away */
307-
g_free (spi_register_object_to_path (spi_global_register,
308-
G_OBJECT (current)));
309-
310323
add_object (cache, G_OBJECT (current));
311324
g_object_unref (G_OBJECT (current));
312325
}

atk-adaptor/accessible-register.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -198,12 +198,14 @@ spi_register_deregister_object (SpiRegister *reg, GObject *gobj, gboolean unref)
198198
ref = object_to_ref (gobj);
199199
if (ref != 0)
200200
{
201-
g_signal_emit (reg,
202-
register_signals[OBJECT_DEREGISTERED],
203-
0,
204-
gobj);
205201
if (unref)
206-
g_object_weak_unref (gobj, deregister_object, reg);
202+
{
203+
g_signal_emit (reg,
204+
register_signals[OBJECT_DEREGISTERED],
205+
0,
206+
gobj);
207+
g_object_weak_unref (gobj, deregister_object, reg);
208+
}
207209
g_hash_table_remove (reg->ref2ptr, GINT_TO_POINTER (ref));
208210

209211
#ifdef SPI_ATK_DEBUG

atk-adaptor/adaptors/accessible-adaptor.c

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
#include "spi-dbus.h"
3434
#include <string.h>
3535

36+
#define MAX_CHILDREN 65536
37+
3638
static dbus_bool_t
3739
impl_get_Name (DBusMessageIter *iter, void *user_data)
3840
{
@@ -202,6 +204,16 @@ impl_GetChildren (DBusConnection *bus,
202204
g_return_val_if_fail (ATK_IS_OBJECT (user_data),
203205
droute_not_yet_handled_error (message));
204206
count = atk_object_get_n_accessible_children (object);
207+
208+
if (count > MAX_CHILDREN)
209+
{
210+
gchar *errmsg = g_strdup_printf (
211+
"Accessible's child count %d exceeds the maximum of %d handled by GetChildren.", count, MAX_CHILDREN);
212+
reply = dbus_message_new_error (message, DBUS_ERROR_INVALID_ARGS, errmsg);
213+
g_free (errmsg);
214+
return reply;
215+
}
216+
205217
reply = dbus_message_new_method_return (message);
206218
if (!reply)
207219
goto oom;
@@ -568,6 +580,16 @@ impl_get_AccessibleId (DBusMessageIter *iter, void *user_data)
568580
return droute_return_v_string (iter, atk_object_get_accessible_id (object));
569581
}
570582

583+
static dbus_bool_t
584+
impl_get_HelpText (DBusMessageIter *iter, void *user_data)
585+
{
586+
AtkObject *object = (AtkObject *) user_data;
587+
588+
g_return_val_if_fail (ATK_IS_OBJECT (user_data), FALSE);
589+
590+
return droute_return_v_string (iter, atk_object_get_help_text (object));
591+
}
592+
571593
static DRouteMethod methods[] = {
572594
{ impl_GetChildAtIndex, "GetChildAtIndex" },
573595
{ impl_GetChildren, "GetChildren" },
@@ -591,6 +613,7 @@ static DRouteProperty properties[] = {
591613
{ impl_get_ChildCount, NULL, "ChildCount" },
592614
{ impl_get_Attributes, NULL, "Attributes" },
593615
{ impl_get_AccessibleId, NULL, "AccessibleId" },
616+
{ impl_get_HelpText, NULL, "HelpText" },
594617
{ NULL, NULL, NULL }
595618
};
596619

0 commit comments

Comments
 (0)