Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package at-spi2-core for openSUSE:Factory 
checked in at 2026-04-26 21:11:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/at-spi2-core (Old)
 and      /work/SRC/openSUSE:Factory/.at-spi2-core.new.11940 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "at-spi2-core"

Sun Apr 26 21:11:03 2026 rev:123 rq:1348427 version:2.60.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/at-spi2-core/at-spi2-core.changes        
2026-04-10 17:47:17.683664788 +0200
+++ /work/SRC/openSUSE:Factory/.at-spi2-core.new.11940/at-spi2-core.changes     
2026-04-26 21:12:16.911795266 +0200
@@ -1,0 +2,9 @@
+Fri Apr 17 16:33:27 UTC 2026 - Bjørn Lie <[email protected]>
+
+- Update to version 2.60.1:
+  + Detect unresponsive applications, and do not expose them as
+    children of the desktop.
+  + Attempt to fix a crash when opening a group chat in pidgin that
+    contains new messages.
+
+-------------------------------------------------------------------

Old:
----
  at-spi2-core-2.60.0.tar.xz

New:
----
  at-spi2-core-2.60.1.tar.xz

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

Other differences:
------------------
++++++ at-spi2-core.spec ++++++
--- /var/tmp/diff_new_pack.N7PueA/_old  2026-04-26 21:12:19.099884727 +0200
+++ /var/tmp/diff_new_pack.N7PueA/_new  2026-04-26 21:12:19.115885382 +0200
@@ -23,7 +23,7 @@
 %define atspiconfdir %{?_distconfdir}%{!?_distconfdir:%{_sysconfdir}}
 
 Name:           at-spi2-core
-Version:        2.60.0
+Version:        2.60.1
 Release:        0
 Summary:        Assistive Technology Service Provider Interface - D-Bus based 
implementation
 License:        LGPL-2.1-or-later

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.N7PueA/_old  2026-04-26 21:12:19.511901573 +0200
+++ /var/tmp/diff_new_pack.N7PueA/_new  2026-04-26 21:12:19.575904190 +0200
@@ -1,6 +1,6 @@
-mtime: 1774254118
-commit: 180921bd7892840bc3f7d1cb3d4c5b5f2a8ded97e0bff1bd009cb7242ab2ea1a
+mtime: 1776443682
+commit: 59b27f55dc774a49fca19b599b4b4dfdbe6766ea6f8efd49b310df7873577398
 url: https://src.opensuse.org/GNOME/at-spi2-core
-revision: 180921bd7892840bc3f7d1cb3d4c5b5f2a8ded97e0bff1bd009cb7242ab2ea1a
+revision: 59b27f55dc774a49fca19b599b4b4dfdbe6766ea6f8efd49b310df7873577398
 projectscmsync: https://src.opensuse.org/GNOME/_ObsPrj
 

++++++ _service ++++++
--- /var/tmp/diff_new_pack.N7PueA/_old  2026-04-26 21:12:19.807913676 +0200
+++ /var/tmp/diff_new_pack.N7PueA/_new  2026-04-26 21:12:19.819914166 +0200
@@ -3,7 +3,7 @@
   <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.60.0</param>
+    <param name="revision">2.60.1</param>
     <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
     <param name="versionrewrite-pattern">(.*)\+0</param>
     <param name="versionrewrite-replacement">\1</param>

++++++ at-spi2-core-2.60.0.tar.xz -> at-spi2-core-2.60.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.60.0/NEWS new/at-spi2-core-2.60.1/NEWS
--- old/at-spi2-core-2.60.0/NEWS        2026-03-13 20:43:45.000000000 +0100
+++ new/at-spi2-core-2.60.1/NEWS        2026-04-11 17:10:26.000000000 +0200
@@ -1,3 +1,11 @@
+What's new in at-spi2-core 2.60.1:
+
+* Detect unresponsive applications, and do not expose them as children
+  of the desktop.
+
+* Attempt to fix a crash when opening a group chat in pidgin that contains
+  new messages.
+
 What's new in at-spi2-core 2.60.0:
 
 * Fix detection of whether the org.freedesktop.a11y.PointerLocator
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.60.0/atspi/atspi-misc.c 
new/at-spi2-core-2.60.1/atspi/atspi-misc.c
--- old/at-spi2-core-2.60.0/atspi/atspi-misc.c  2026-03-13 20:43:45.000000000 
+0100
+++ new/at-spi2-core-2.60.1/atspi/atspi-misc.c  2026-04-11 17:10:26.000000000 
+0200
@@ -580,7 +580,7 @@
 {
   DBusMessageIter iter_struct, iter_array;
   AtspiAccessible *accessible;
-  AtspiAccessible *parent;
+  AtspiAccessible *parent, *old_parent;
   const char *name, *description;
   dbus_uint32_t role;
   gboolean children_cached = FALSE;
@@ -598,8 +598,7 @@
 
   /* get parent */
   parent = _atspi_dbus_consume_accessible (&iter_struct);
-  if (accessible->accessible_parent)
-    g_object_unref (accessible->accessible_parent);
+  old_parent = accessible->accessible_parent;
   if (parent == accessible)
     {
       guint pid = atspi_accessible_get_process_id (accessible, NULL);
@@ -609,6 +608,7 @@
     }
   else
     accessible->accessible_parent = parent;
+  g_clear_object (&old_parent);
 
   if (dbus_message_iter_get_arg_type (&iter_struct) == 'i')
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.60.0/meson.build 
new/at-spi2-core-2.60.1/meson.build
--- old/at-spi2-core-2.60.0/meson.build 2026-03-13 20:43:45.000000000 +0100
+++ new/at-spi2-core-2.60.1/meson.build 2026-04-11 17:10:26.000000000 +0200
@@ -1,5 +1,5 @@
 project('at-spi2-core', 'c',
-        version: '2.60.0',
+        version: '2.60.1',
         license: 'LGPLv2.1+',
         default_options: [
           'buildtype=debugoptimized',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.60.0/registryd/registry.c 
new/at-spi2-core-2.60.1/registryd/registry.c
--- old/at-spi2-core-2.60.0/registryd/registry.c        2026-03-13 
20:43:45.000000000 +0100
+++ new/at-spi2-core-2.60.1/registryd/registry.c        2026-04-11 
17:10:26.000000000 +0200
@@ -44,32 +44,35 @@
 {
   gchar *name;
   gchar *path;
-} SpiReference;
+  DBusPendingCall *pending;
+  gboolean disabled;
+  pid_t pid;
+} SpiApplication;
 
-static SpiReference *
-spi_reference_new (const gchar *name, const gchar *path)
+static SpiApplication *
+spi_application_new (const gchar *name, const gchar *path)
 {
-  SpiReference *ref;
+  SpiApplication *app;
 
-  ref = g_new0 (SpiReference, 1);
-  ref->name = g_strdup (name);
-  ref->path = g_strdup (path);
+  app = g_new0 (SpiApplication, 1);
+  app->name = g_strdup (name);
+  app->path = g_strdup (path);
 
-  return ref;
+  return app;
 }
 
-static SpiReference *
-spi_reference_null (const char *bus_name)
+static SpiApplication *
+spi_application_null (const char *bus_name)
 {
-  return spi_reference_new (bus_name, SPI_DBUS_PATH_NULL);
+  return spi_application_new (bus_name, SPI_DBUS_PATH_NULL);
 }
 
 static void
-spi_reference_free (SpiReference *ref)
+spi_application_free (SpiApplication *app)
 {
-  g_free (ref->name);
-  g_free (ref->path);
-  g_free (ref);
+  g_free (app->name);
+  g_free (app->path);
+  g_free (app);
 }
 
 /*---------------------------------------------------------------------------*/
@@ -82,6 +85,7 @@
   SpiRegistry *registry = SPI_REGISTRY (object);
 
   g_clear_pointer (&registry->bus_unique_name, g_free);
+  g_source_remove (registry->ping_applications_source);
 
   G_OBJECT_CLASS (spi_registry_parent_class)->finalize (object);
 }
@@ -100,7 +104,7 @@
 static void
 spi_registry_init (SpiRegistry *registry)
 {
-  registry->apps = g_ptr_array_new_with_free_func ((GDestroyNotify) 
spi_reference_free);
+  registry->apps = g_ptr_array_new_with_free_func ((GDestroyNotify) 
spi_application_free);
 }
 
 /*---------------------------------------------------------------------------*/
@@ -121,7 +125,7 @@
 }
 
 static void
-append_reference (DBusMessageIter *iter, SpiReference *ref)
+append_reference (DBusMessageIter *iter, SpiApplication *app)
 {
   DBusMessageIter iter_struct;
 
@@ -131,15 +135,15 @@
       g_error ("Out of memory");
     }
 
-  dbus_message_iter_append_basic (&iter_struct, DBUS_TYPE_STRING, &ref->name);
-  dbus_message_iter_append_basic (&iter_struct, DBUS_TYPE_OBJECT_PATH, 
&ref->path);
+  dbus_message_iter_append_basic (&iter_struct, DBUS_TYPE_STRING, &app->name);
+  dbus_message_iter_append_basic (&iter_struct, DBUS_TYPE_OBJECT_PATH, 
&app->path);
   dbus_message_iter_close_container (iter, &iter_struct);
 }
 
 /*---------------------------------------------------------------------------*/
 
 static gboolean
-compare_reference (const SpiReference *one, const SpiReference *two)
+compare_reference (const SpiApplication *one, const SpiApplication *two)
 {
   if (g_strcmp0 (one->name, two->name) == 0 &&
       g_strcmp0 (one->path, two->path) == 0)
@@ -149,7 +153,7 @@
 }
 
 static gboolean
-find_index_of_reference (GPtrArray *arr, const SpiReference *ref, guint *index)
+find_index_of_reference (GPtrArray *arr, const SpiApplication *ref, guint 
*index)
 {
   gboolean found = FALSE;
   guint i = 0;
@@ -168,14 +172,25 @@
 }
 
 static void
-emit_children_changed (DBusConnection *bus,
-                       const char *operation,
-                       dbus_int32_t index,
-                       SpiReference *app)
+emit_children_changed (SpiRegistry *registry,
+                       gboolean add,
+                       SpiApplication *app)
 {
   DBusMessage *sig;
   DBusMessageIter iter, iter_variant, iter_array;
+  dbus_uint32_t index = 0;
   dbus_int32_t unused = 0;
+  gint i;
+  const char *operation = (add ? "add" : "remove");
+
+  for (i = 0; i < registry->apps->len; i++)
+    {
+      SpiApplication *other_app = g_ptr_array_index (registry->apps, i);
+      if (other_app == app)
+        break;
+      if (!other_app->disabled)
+        index++;
+    }
 
   sig = dbus_message_new_signal (SPI_DBUS_PATH_ROOT,
                                  SPI_DBUS_INTERFACE_EVENT_OBJECT,
@@ -196,23 +211,53 @@
                                     &iter_array);
   dbus_message_iter_close_container (&iter, &iter_array);
 
-  dbus_connection_send (bus, sig, NULL);
+  dbus_connection_send (registry->bus, sig, NULL);
   dbus_message_unref (sig);
 }
 
 static void
-add_application (SpiRegistry *registry, SpiReference *app_root)
+set_app_pid (DBusPendingCall *pending, void *user_data)
 {
-  gint index;
+  SpiApplication *app = user_data;
+  DBusMessage *reply = dbus_pending_call_steal_reply (pending);
+  dbus_uint32_t pid = 0;
 
-  g_ptr_array_add (registry->apps, app_root);
-  index = registry->apps->len - 1;
+  if (!strcmp (dbus_message_get_signature (reply), "u"))
+    {
+      dbus_message_get_args (reply, NULL, DBUS_TYPE_UINT32, &pid, 
DBUS_TYPE_INVALID);
+      app->pid = pid;
+      g_debug ("App with bus name '%s' has pid %d", app->name, app->pid);
+    }
+  dbus_message_unref (reply);
+  dbus_pending_call_unref (pending);
+}
 
-  emit_children_changed (registry->bus, "add", index, app_root);
+static void
+add_application (SpiRegistry *registry, SpiApplication *app)
+{
+  DBusMessage *message;
+  DBusPendingCall *pending;
+
+  g_debug ("Adding application with name '%s'", app->name);
+
+  g_ptr_array_add (registry->apps, app);
+
+  emit_children_changed (registry, TRUE, app);
+
+  message = dbus_message_new_method_call ("org.freedesktop.DBus",
+                                          "/org/freedesktop/DBus",
+                                          "org.freedesktop.DBus",
+                                          "GetConnectionUnixProcessID");
+  dbus_message_append_args (message, DBUS_TYPE_STRING,
+                            &app->name,
+                            DBUS_TYPE_INVALID);
+  dbus_connection_send_with_reply (registry->bus, message, &pending, 10000);
+  dbus_pending_call_set_notify (pending, set_app_pid, app, NULL);
+  dbus_message_unref (message);
 }
 
 static void
-call_set_id (SpiRegistry *registry, SpiReference *app, dbus_int32_t id)
+call_set_id (SpiRegistry *registry, SpiApplication *app, dbus_int32_t id)
 {
   DBusMessage *message;
   DBusMessageIter iter, iter_variant;
@@ -234,12 +279,14 @@
 }
 
 static void
-remove_application (SpiRegistry *registry, guint index)
+remove_application (SpiRegistry *registry, guint index, const gchar *reason)
 {
-  SpiReference *ref = g_ptr_array_index (registry->apps, index);
+  SpiApplication *app = g_ptr_array_index (registry->apps, index);
 
-  spi_remove_device_listeners (registry->dec, ref->name);
-  emit_children_changed (registry->bus, "remove", index, ref);
+  g_debug ("Removing application with name '%s' due to %s", app->name, reason);
+
+  spi_remove_device_listeners (registry->dec, app->name);
+  emit_children_changed (registry, FALSE, app);
   g_ptr_array_remove_index (registry->apps, index);
 }
 
@@ -332,10 +379,10 @@
           guint i;
           for (i = 0; i < registry->apps->len; i++)
             {
-              SpiReference *ref = g_ptr_array_index (registry->apps, i);
-              if (!g_strcmp0 (old, ref->name))
+              SpiApplication *app = g_ptr_array_index (registry->apps, i);
+              if (!g_strcmp0 (old, app->name))
                 {
-                  remove_application (registry, i);
+                  remove_application (registry, i, "NameOwnerChanged");
                   i--;
                 }
             }
@@ -413,12 +460,12 @@
 /*---------------------------------------------------------------------------*/
 
 static DemarshalStatus
-demarshal_reference (DBusMessage *message, SpiReference **out_reference)
+demarshal_reference (DBusMessage *message, SpiApplication **out_app)
 {
   DBusMessageIter iter, iter_struct;
   const gchar *app_name, *obj_path;
 
-  *out_reference = NULL;
+  *out_app = NULL;
 
   dbus_message_iter_init (message, &iter);
   dbus_message_iter_recurse (&iter, &iter_struct);
@@ -433,26 +480,26 @@
     return DEMARSHAL_STATUS_INVALID_SIGNATURE;
   dbus_message_iter_get_basic (&iter_struct, &obj_path);
 
-  *out_reference = spi_reference_new (app_name, obj_path);
+  *out_app = spi_application_new (app_name, obj_path);
 
   return DEMARSHAL_STATUS_SUCCESS;
 }
 
-static SpiReference *
-socket_embed (SpiRegistry *registry, SpiReference *app_root)
+static SpiApplication *
+socket_embed (SpiRegistry *registry, SpiApplication *app_root)
 {
   add_application (registry, app_root);
   call_set_id (registry, app_root, registry->id);
   /* TODO: This will cause problems if we cycle through 2^31 ids */
   registry->id++;
-  return spi_reference_new (registry->bus_unique_name, SPI_DBUS_PATH_ROOT);
+  return spi_application_new (registry->bus_unique_name, SPI_DBUS_PATH_ROOT);
 }
 
 static DBusMessage *
 impl_Embed (DBusMessage *message, SpiRegistry *registry)
 {
-  SpiReference *app_root = NULL;
-  SpiReference *result;
+  SpiApplication *app_root = NULL;
+  SpiApplication *result;
 
   if (demarshal_reference (message, &app_root) != DEMARSHAL_STATUS_SUCCESS)
     {
@@ -467,7 +514,7 @@
   reply = dbus_message_new_method_return (message);
   dbus_message_iter_init_append (reply, &reply_iter);
   append_reference (&reply_iter, result);
-  spi_reference_free (result);
+  spi_application_free (result);
 
   return reply;
 }
@@ -475,18 +522,18 @@
 static DBusMessage *
 impl_Unembed (DBusMessage *message, SpiRegistry *registry)
 {
-  SpiReference *app_reference;
+  SpiApplication *app;
   guint index;
 
-  if (demarshal_reference (message, &app_reference) != 
DEMARSHAL_STATUS_SUCCESS)
+  if (demarshal_reference (message, &app) != DEMARSHAL_STATUS_SUCCESS)
     {
       return dbus_message_new_error (message, DBUS_ERROR_FAILED, "Invalid 
arguments");
     }
 
-  if (find_index_of_reference (registry->apps, app_reference, &index))
-    remove_application (registry, index);
+  if (find_index_of_reference (registry->apps, app, &index))
+    remove_application (registry, index, "Unembed");
 
-  spi_reference_free (app_reference);
+  spi_application_free (app);
 
   return NULL;
 }
@@ -511,12 +558,12 @@
 {
   DBusMessage *reply = NULL;
   DBusMessageIter iter;
-  SpiReference *null_ref = spi_reference_null (registry->bus_unique_name);
+  SpiApplication *null_app = spi_application_null (registry->bus_unique_name);
 
   reply = dbus_message_new_method_return (message);
   dbus_message_iter_init_append (reply, &iter);
-  append_reference (&iter, null_ref);
-  spi_reference_free (null_ref);
+  append_reference (&iter, null_app);
+  spi_application_free (null_app);
 
   return reply;
 }
@@ -636,12 +683,12 @@
 impl_get_Parent (DBusMessageIter *iter, SpiRegistry *registry)
 {
   DBusMessageIter iter_variant;
-  SpiReference *null_ref = spi_reference_null ("");
+  SpiApplication *null_app = spi_application_null ("");
 
   dbus_message_iter_open_container (iter, DBUS_TYPE_VARIANT, "(so)",
                                     &iter_variant);
-  append_reference (&iter_variant, null_ref);
-  spi_reference_free (null_ref);
+  append_reference (&iter_variant, null_app);
+  spi_application_free (null_app);
   dbus_message_iter_close_container (iter, &iter_variant);
   return TRUE;
 }
@@ -649,9 +696,17 @@
 static dbus_bool_t
 impl_get_ChildCount (DBusMessageIter *iter, SpiRegistry *registry)
 {
-  dbus_int32_t rv = registry->apps->len;
+  dbus_int32_t rv = 0;
   dbus_bool_t result;
   DBusMessageIter iter_variant;
+  gint i;
+
+  for (i = 0; i < registry->apps->len; i++)
+    {
+      SpiApplication *current = g_ptr_array_index (registry->apps, i);
+      if (!current->disabled)
+        rv++;
+    }
 
   if (!dbus_message_iter_open_container (iter, DBUS_TYPE_VARIANT, "i",
                                          &iter_variant))
@@ -673,13 +728,35 @@
   return_v_string (iter, "2.0");
 }
 
+static SpiApplication *
+get_application_at_index (SpiRegistry *registry, gint index)
+{
+  gint i;
+  gint count = 0;
+
+  if (index < 0)
+    return NULL;
+
+  for (i = 0; i < registry->apps->len; i++)
+    {
+      SpiApplication *current = g_ptr_array_index (registry->apps, i);
+      if (current->disabled)
+        continue;
+      if (index == count)
+        return current;
+      count++;
+    }
+
+  return NULL;
+}
+
 static DBusMessage *
 impl_GetChildAtIndex (DBusMessage *message, SpiRegistry *registry)
 {
   DBusMessage *reply;
   DBusMessageIter iter;
   DBusError error;
-  SpiReference *ref;
+  SpiApplication *app;
   dbus_int32_t i;
 
   dbus_error_init (&error);
@@ -691,16 +768,14 @@
   reply = dbus_message_new_method_return (message);
   dbus_message_iter_init_append (reply, &iter);
 
-  if (i < 0 || i >= registry->apps->len)
-    {
-      SpiReference *null_ref = spi_reference_null (SPI_DBUS_NAME_REGISTRY);
-      append_reference (&iter, null_ref);
-      spi_reference_free (null_ref);
-    }
+  app = get_application_at_index (registry, i);
+  if (app)
+    append_reference (&iter, app);
   else
     {
-      ref = g_ptr_array_index (registry->apps, i);
-      append_reference (&iter, ref);
+      SpiApplication *null_app = spi_application_null (SPI_DBUS_NAME_REGISTRY);
+      append_reference (&iter, null_app);
+      spi_application_free (null_app);
     }
 
   return reply;
@@ -719,8 +794,9 @@
   dbus_message_iter_open_container (&iter, DBUS_TYPE_ARRAY, "(so)", 
&iter_array);
   for (i = 0; i < registry->apps->len; i++)
     {
-      SpiReference *current = g_ptr_array_index (registry->apps, i);
-      append_reference (&iter_array, current);
+      SpiApplication *current = g_ptr_array_index (registry->apps, i);
+      if (!current->disabled)
+        append_reference (&iter_array, current);
     }
   dbus_message_iter_close_container (&iter, &iter_array);
   return reply;
@@ -828,12 +904,12 @@
 {
   DBusMessage *reply = NULL;
   DBusMessageIter iter;
-  SpiReference *null_ref = spi_reference_null (registry->bus_unique_name);
+  SpiApplication *null_app = spi_application_null (registry->bus_unique_name);
 
   reply = dbus_message_new_method_return (message);
   dbus_message_iter_init_append (reply, &iter);
-  append_reference (&iter, null_ref);
-  spi_reference_free (null_ref);
+  append_reference (&iter, null_app);
+  spi_application_free (null_app);
 
   return reply;
 }
@@ -1028,7 +1104,7 @@
 {
   DBusMessage *sig;
   DBusMessageIter iter;
-  SpiReference root_ref = {
+  SpiApplication root_ref = {
     SPI_DBUS_NAME_REGISTRY,
     SPI_DBUS_PATH_ROOT,
   };
@@ -1409,6 +1485,77 @@
   NULL, NULL, NULL, NULL
 };
 
+static void
+disable_app (SpiRegistry *registry, SpiApplication *app)
+{
+  if (app->disabled)
+    return;
+
+  g_warning ("Disabling unresponsive app with pid %d", app->pid);
+  app->disabled = TRUE;
+  emit_children_changed (registry, FALSE, app);
+}
+
+static void
+enable_app (SpiRegistry *registry, SpiApplication *app)
+{
+  if (!app->disabled)
+    return;
+
+  g_warning ("Re-enabling app with pid %d", app->pid);
+  app->disabled = FALSE;
+  emit_children_changed (registry, TRUE, app);
+}
+
+static void
+handle_app_ping (DBusPendingCall *pending, void *user_data)
+{
+  SpiRegistry *registry = user_data;
+  gint i;
+
+  for (i = 0; i < registry->apps->len; i++)
+    {
+      SpiApplication *app = g_ptr_array_index (registry->apps, i);
+      if (app->pending == pending)
+        {
+          DBusMessage *reply = dbus_pending_call_steal_reply (pending);
+
+          if (dbus_message_get_type (reply) == DBUS_MESSAGE_TYPE_ERROR)
+            {
+              disable_app (registry, app);
+            }
+          else
+            enable_app (registry, app);
+          dbus_message_unref (reply);
+          app->pending = NULL;
+          break;
+        }
+    }
+
+  dbus_pending_call_unref (pending);
+}
+
+static gboolean
+ping_applications (gpointer data)
+{
+  SpiRegistry *registry = data;
+  DBusMessage *message;
+  gint i;
+
+  for (i = 0; i < registry->apps->len; i++)
+    {
+      SpiApplication *app = g_ptr_array_index (registry->apps, i);
+
+      message = dbus_message_new_method_call (app->name, "/", 
"org.freedesktop.DBus.Peer", "Ping");
+      dbus_connection_send_with_reply (registry->bus, message, &app->pending, 
10000);
+      if (app->pending)
+        dbus_pending_call_set_notify (app->pending, handle_app_ping, registry, 
NULL);
+      dbus_message_unref (message);
+    }
+
+  return G_SOURCE_CONTINUE;
+}
+
 static gchar *app_sig_match_name_owner =
     "type='signal', interface='org.freedesktop.DBus', 
member='NameOwnerChanged'";
 
@@ -1436,7 +1583,7 @@
 
   emit_Available (bus);
 
-  registry->events = NULL;
+  registry->ping_applications_source = g_timeout_add_seconds (30, 
ping_applications, registry);
 
   return registry;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.60.0/registryd/registry.h 
new/at-spi2-core-2.60.1/registryd/registry.h
--- old/at-spi2-core-2.60.0/registryd/registry.h        2026-03-13 
20:43:45.000000000 +0100
+++ new/at-spi2-core-2.60.1/registryd/registry.h        2026-04-11 
17:10:26.000000000 +0200
@@ -52,6 +52,7 @@
   DBusConnection *bus;
   char *bus_unique_name;
   GList *events;
+  guint ping_applications_source;
 };
 
 struct _SpiRegistryClass

++++++ at-spi2-core.obsinfo ++++++
--- /var/tmp/diff_new_pack.N7PueA/_old  2026-04-26 21:12:20.751952273 +0200
+++ /var/tmp/diff_new_pack.N7PueA/_new  2026-04-26 21:12:20.787953745 +0200
@@ -1,5 +1,5 @@
 name: at-spi2-core
-version: 2.60.0
-mtime: 1773431025
-commit: d8ab833f0230fccc009c271d9f23f53df2a32c88
+version: 2.60.1
+mtime: 1775920226
+commit: ea37f283d06e556dcffad036623107dc20f419c5
 

++++++ 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      2026-04-18 16:28:50.000000000 +0200
@@ -0,0 +1,5 @@
+*.obscpio
+*.osc
+_build.*
+.pbuild
+osc-collab.*

Reply via email to