Hello community,

here is the log from the commit of package at-spi2-core for openSUSE:Factory 
checked in at 2018-10-17 08:20:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/at-spi2-core (Old)
 and      /work/SRC/openSUSE:Factory/.at-spi2-core.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "at-spi2-core"

Wed Oct 17 08:20:27 2018 rev:81 rq:640110 version:2.30.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/at-spi2-core/at-spi2-core.changes        
2018-03-14 19:30:48.842727004 +0100
+++ /work/SRC/openSUSE:Factory/.at-spi2-core.new/at-spi2-core.changes   
2018-10-17 08:20:37.490881071 +0200
@@ -1,0 +2,26 @@
+Thu Oct  4 10:50:55 UTC 2018 - [email protected]
+
+- Add at-spi2-core-bus-launch-use__linux__.patch: bus-launch:
+  use __linux__ over __linux.
+- Add at-spi2-core-generate-pc.patch: meson: Generate a pkg-config
+  file.
+- Disable gtk-doc BuildRequires and pass enable_docs=false to
+  meson. Temp workaround for buildfail when building docs with
+  meson 0.48.
+
+-------------------------------------------------------------------
+Fri Sep  7 20:28:29 UTC 2018 - [email protected]
+
+- Update to version 2.30.0:
+  + No changes, stable bump only.
+
+-------------------------------------------------------------------
+Tue Jun 19 23:07:04 UTC 2018 - [email protected]
+
+- Update to version 2.29.1:
+  + Add dbus-broker support to bus launcher.
+  + Add ScrollTo and ScrollToPoint component interfaces.
+  + Do not use deprecated GSettings API.
+  + Fix various compiler warnings and documentation annotations.
+
+-------------------------------------------------------------------

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

New:
----
  at-spi2-core-2.30.0.tar.xz
  at-spi2-core-bus-launch-use__linux__.patch
  at-spi2-core-generate-pc.patch

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

Other differences:
------------------
++++++ at-spi2-core.spec ++++++
--- /var/tmp/diff_new_pack.3dQYUL/_old  2018-10-17 08:20:38.946880416 +0200
+++ /var/tmp/diff_new_pack.3dQYUL/_new  2018-10-17 08:20:38.950880414 +0200
@@ -12,20 +12,26 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
 Name:           at-spi2-core
-Version:        2.28.0
+Version:        2.30.0
 Release:        0
 Summary:        Assistive Technology Service Provider Interface - D-Bus based 
implementation
 License:        GPL-2.0-or-later
 Group:          System/GUI/GNOME
-URL:            http://www.gnome.org/
-Source0:        
http://download.gnome.org/sources/at-spi2-core/2.28/%{name}-%{version}.tar.xz
+URL:            https://www.gnome.org/
+Source0:        
https://download.gnome.org/sources/at-spi2-core/2.30/%{name}-%{version}.tar.xz
 Source99:       baselibs.conf
-BuildRequires:  gtk-doc
+# PATCH-UPSTREAM-FIX at-spi2-core-bus-launch-use__linux__.patch -- bus-launch: 
use __linux__ over __linux
+Patch0:         at-spi2-core-bus-launch-use__linux__.patch
+# PATCH-UPSTREAM-FIX at-spi2-core-generate-pc.patch -- meson: Generate a 
pkg-config file
+Patch1:         at-spi2-core-generate-pc.patch
+
+###FIXME### Disabled due to build error with meson 048 and newer
+#BuildRequires:  gtk-doc
 BuildRequires:  intltool
 BuildRequires:  meson
 BuildRequires:  pkgconfig
@@ -87,7 +93,7 @@
 %build
 %meson \
        --libexecdir="%{_libexecdir}/at-spi2" \
-       -D enable_docs=true \
+       -D enable_docs=false \
        -D enable-introspection=yes \
        -D enable-x11=yes \
        %{nil}
@@ -123,9 +129,9 @@
 %{_libdir}/libatspi.so
 %{_libdir}/pkgconfig/atspi-2.pc
 %{_datadir}/gir-1.0/*.gir
-%dir %{_datadir}/gtk-doc
-%dir %{_datadir}/gtk-doc/html
-%doc %{_datadir}/gtk-doc/html/libatspi/
+#%%dir %%{_datadir}/gtk-doc
+#%%dir %%{_datadir}/gtk-doc/html
+#%%doc %%{_datadir}/gtk-doc/html/libatspi/
 
 %files lang -f at-spi2-core.lang
 

++++++ at-spi2-core-2.28.0.tar.xz -> at-spi2-core-2.30.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.28.0/NEWS new/at-spi2-core-2.30.0/NEWS
--- old/at-spi2-core-2.28.0/NEWS        2018-03-13 01:30:12.000000000 +0100
+++ new/at-spi2-core-2.30.0/NEWS        2018-09-03 22:50:10.000000000 +0200
@@ -1,3 +1,13 @@
+What's new in at-spi2-core 2.29.1:
+
+* Add dbus-broker support to bus launcher.
+
+* Add ScrollTo and ScrollToPoint component interfaces.
+
+* Do not use deprecated GSettings API
+
+* Fix various compiler warnings and documentation annotations.
+
 What's new in at-spi2-core 2.27.92:
 
 * Support building a static library (bgo#793652).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.28.0/atspi/atspi-component.c 
new/at-spi2-core-2.30.0/atspi/atspi-component.c
--- old/at-spi2-core-2.28.0/atspi/atspi-component.c     2018-03-13 
01:30:12.000000000 +0100
+++ new/at-spi2-core-2.30.0/atspi/atspi-component.c     2018-09-03 
22:50:10.000000000 +0200
@@ -412,6 +412,63 @@
   return ret;
 }
 
+/**
+ * atspi_component_scroll_to:
+ * @obj: a pointer to the #AtspiComponent object on which to operate.
+ * @type: a #AtspiScrollType indicating where the object should be placed on 
the
+ *        screen.
+ *
+ * Scrolls whatever container of the #AtspiComponent object so it becomes
+ * visible on the screen.
+ *
+ * Returns: #TRUE if successful, #FALSE otherwise.
+ **/
+gboolean
+atspi_component_scroll_to (AtspiComponent *obj,
+                           AtspiScrollType type,
+                           GError **error)
+{
+  dbus_bool_t retval = FALSE;
+
+  g_return_val_if_fail (obj != NULL, FALSE);
+
+  _atspi_dbus_call (obj, atspi_interface_component,
+                    "ScrollTo", error, "u=>b", type, &retval);
+
+  return retval;
+}
+
+/**
+ * atspi_component_scroll_to_point:
+ * @obj: a pointer to the #AtspiComponent object on which to operate.
+ * @coords: a #AtspiCoordType indicating whether the coordinates are relative 
to
+ *          the screen, to the window, or to the parent object.
+ * @x: the x coordinate of the point to reach
+ * @y: the y coordinate of the point to reach
+ * @error: return location for a #GError
+ *
+ * Scrolls whatever container of the #AtspiComponent object so it becomes
+ * visible on the screen at a given position.
+ *
+ * Returns: #TRUE if successful, #FALSE otherwise.
+ **/
+gboolean
+atspi_component_scroll_to_point (AtspiComponent *obj,
+                                 AtspiCoordType coords,
+                                 gint x,
+                                 gint y,
+                                 GError **error)
+{
+  dbus_bool_t retval = FALSE;
+
+  g_return_val_if_fail (obj != NULL, FALSE);
+
+  _atspi_dbus_call (obj, atspi_interface_component,
+                    "ScrollToPoint", error, "uii=>b", coords, x, y, &retval);
+
+  return retval;
+}
+
 static void
 atspi_component_base_init (AtspiComponent *klass)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.28.0/atspi/atspi-component.h 
new/at-spi2-core-2.30.0/atspi/atspi-component.h
--- old/at-spi2-core-2.28.0/atspi/atspi-component.h     2018-03-13 
01:30:12.000000000 +0100
+++ new/at-spi2-core-2.30.0/atspi/atspi-component.h     2018-09-03 
22:50:10.000000000 +0200
@@ -107,6 +107,10 @@
 
 gboolean atspi_component_set_size (AtspiComponent *obj, gint width, gint 
height, GError **error);
 
+gboolean atspi_component_scroll_to (AtspiComponent *obj, AtspiScrollType type, 
GError **error);
+
+gboolean atspi_component_scroll_to_point (AtspiComponent *obj, AtspiCoordType 
coords, gint x, gint y, GError **error);
+
 G_END_DECLS
 
 #endif /* _ATSPI_COMPONENT_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.28.0/atspi/atspi-constants.h 
new/at-spi2-core-2.30.0/atspi/atspi-constants.h
--- old/at-spi2-core-2.28.0/atspi/atspi-constants.h     2018-03-13 
01:30:12.000000000 +0100
+++ new/at-spi2-core-2.30.0/atspi/atspi-constants.h     2018-09-03 
22:50:10.000000000 +0200
@@ -53,6 +53,8 @@
   Accessibility::StateType\n
   Accessibility::Event\n
   Accessibility::EventDetails \n
+  Accessibility::ScrollType \n
+  Accessibility::CoordType \n
 
   \section Registry
   Accessibility also includes Accessibility::Registry,
@@ -124,8 +126,10 @@
 /**
  * AtspiCoordType:
  * @ATSPI_COORD_TYPE_SCREEN: Specifies xy coordinates relative to the screen.
- * @ATSPI_COORD_TYPE_WINDOW: Specifies xy coordinates relative to the widget's 
+ * @ATSPI_COORD_TYPE_WINDOW: Specifies xy coordinates relative to the widget's
  * top-level window.
+ * @ATSPI_COORD_TYPE_PARENT: Specifies xy coordinates relative to the widget's
+ * immediate parent.
  *
  * Enumeration used by #AtspiComponent, #AtspiImage, and #AtspiText interfaces
  * to specify whether coordinates are relative to the window or the screen.
@@ -134,6 +138,7 @@
 typedef enum {
     ATSPI_COORD_TYPE_SCREEN,
     ATSPI_COORD_TYPE_WINDOW,
+    ATSPI_COORD_TYPE_PARENT,
 } AtspiCoordType;
 
 /**
@@ -141,7 +146,7 @@
  *
  * One higher than the highest valid value of #AtspiCoordType.
  **/
-#define ATSPI_COORD_TYPE_COUNT (1+1)
+#define ATSPI_COORD_TYPE_COUNT (2+1)
 
 /**
  * AtspiCollectionSortOrder:
@@ -1383,6 +1388,43 @@
   ATSPI_CACHE_UNDEFINED   = 0x40000000,
 } AtspiCache;
 
+/**
+ * AtspiScrollType:
+ * @ATSPI_SCROLL_TOP_LEFT: Scroll the object to the top left corner of the
+ * window.
+ * @ATSPI_SCROLL_BOTTOM_RIGHT: Scroll the object to the bottom right corner of
+ * the window.
+ * @ATSPI_SCROLL_TOP_EDGE: Scroll the object to the top edge of the window.
+ * @ATSPI_SCROLL_BOTTOM_EDGE: Scroll the object to the bottom edge of the
+ * window.
+ * @ATSPI_SCROLL_LEFT_EDGE: Scroll the object to the left edge of the
+ * window.
+ * @ATSPI_SCROLL_RIGHT_EDGE: Scroll the object to the right edge of the
+ * window.
+ * @ATSPI_SCROLL_ANYWHERE: Scroll the object to application-dependent position
+ * on the window.
+ *
+ * Enumeration used by interface #AtspiAccessible to specify where an
+ * #AtspiAccessible object should be placed on the screen when using scroll_to.
+ *
+ */
+typedef enum {
+  ATSPI_SCROLL_TOP_LEFT,
+  ATSPI_SCROLL_BOTTOM_RIGHT,
+  ATSPI_SCROLL_TOP_EDGE,
+  ATSPI_SCROLL_BOTTOM_EDGE,
+  ATSPI_SCROLL_LEFT_EDGE,
+  ATSPI_SCROLL_RIGHT_EDGE,
+  ATSPI_SCROLL_ANYWHERE
+} AtspiScrollType;
+
+/**
+ * ATSPI_SCROLLTYPE_COUNT:
+ *
+ * One higher than the highest valid value of #AtspiScrollType.
+ */
+#define ATSPI_SCROLLTYPE_COUNT (6+1)
+
 #define ATSPI_DBUS_NAME_REGISTRY "org.a11y.atspi.Registry"
 #define ATSPI_DBUS_PATH_REGISTRY "/org/a11y/atspi/registry"
 #define ATSPI_DBUS_INTERFACE_REGISTRY "org.a11y.atspi.Registry"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.28.0/atspi/atspi-gmain.c 
new/at-spi2-core-2.30.0/atspi/atspi-gmain.c
--- old/at-spi2-core-2.28.0/atspi/atspi-gmain.c 2018-03-13 01:30:12.000000000 
+0100
+++ new/at-spi2-core-2.30.0/atspi/atspi-gmain.c 2018-09-03 22:50:10.000000000 
+0200
@@ -33,7 +33,7 @@
 #define _(x) dgettext (GETTEXT_PACKAGE, x)
 #define N_(x) x
 
-/**
+/*
  * DBusGMessageQueue:
  * A GSource subclass for dispatching DBusConnection messages.
  * We need this on top of the IO handlers, because sometimes
@@ -41,8 +41,8 @@
  */
 typedef struct
 {
-  GSource source; /**< the parent GSource */
-  DBusConnection *connection; /**< the connection to dispatch */
+  GSource source; /* the parent GSource */
+  DBusConnection *connection; /* the connection to dispatch */
 } DBusGMessageQueue;
 
 static gboolean message_queue_prepare  (GSource     *source,
@@ -95,11 +95,11 @@
 
 typedef struct
 {
-  GMainContext *context;      /**< the main context */
-  GSList *ios;                /**< all IOHandler */
-  GSList *timeouts;           /**< all TimeoutHandler */
-  DBusConnection *connection; /**< NULL if this is really for a server not a 
connection */
-  GSource *message_queue_source; /**< DBusGMessageQueue */
+  GMainContext *context;      /* the main context */
+  GSList *ios;                /* all IOHandler */
+  GSList *timeouts;           /* all TimeoutHandler */
+  DBusConnection *connection; /* NULL if this is really for a server not a 
connection */
+  GSource *message_queue_source; /* DBusGMessageQueue */
 } ConnectionSetup;
 
 
@@ -510,7 +510,7 @@
   return cs;
 }
 
-/** @} */ /* End of GLib bindings internals */
+/* @} */ /* End of GLib bindings internals */
 
 /**
  * atspi_dbus_connection_setup_with_g_main: (skip)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.28.0/atspi/meson.build 
new/at-spi2-core-2.30.0/atspi/meson.build
--- old/at-spi2-core-2.28.0/atspi/meson.build   2018-03-13 01:30:12.000000000 
+0100
+++ new/at-spi2-core-2.30.0/atspi/meson.build   2018-09-03 22:50:10.000000000 
+0200
@@ -90,7 +90,8 @@
 
   gir_extra_args = [
     '--c-include=atspi/atspi.h',
-    '--pkg-export=atspi-2'
+    '--pkg-export=atspi-2',
+    '--quiet',
   ]
 
   gir_dir = join_paths(atspi_datadir, 'gir-1.0')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.28.0/bus/at-spi-bus-launcher.c 
new/at-spi2-core-2.30.0/bus/at-spi-bus-launcher.c
--- old/at-spi2-core-2.28.0/bus/at-spi-bus-launcher.c   2018-03-13 
01:30:12.000000000 +0100
+++ new/at-spi2-core-2.30.0/bus/at-spi-bus-launcher.c   2018-09-03 
22:50:10.000000000 +0200
@@ -2,7 +2,7 @@
  * 
  * at-spi-bus-launcher: Manage the a11y bus as a child process 
  *
- * Copyright 2011 Red Hat, Inc.
+ * Copyright 2011-2018 Red Hat, Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -25,6 +25,11 @@
 #include <unistd.h>
 #include <string.h>
 #include <signal.h>
+#ifdef __linux
+#include <sys/prctl.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+#endif
 #include <sys/wait.h>
 #include <errno.h>
 #include <stdio.h>
@@ -50,6 +55,7 @@
   GDBusConnection *session_bus;
   GSettings *a11y_schema;
   GSettings *interface_schema;
+  int name_owner_id;
 
   GDBusProxy *client_proxy;
 
@@ -58,6 +64,7 @@
   int a11y_bus_pid;
   char *a11y_bus_address;
   int pipefd[2];
+  int listenfd;
   char *a11y_launch_error_message;
 } A11yBusLauncher;
 
@@ -215,23 +222,6 @@
   register_client (app);
 }
 
-static void
-setup_bus_child (gpointer data)
-{
-  A11yBusLauncher *app = data;
-  (void) app;
-
-  close (app->pipefd[0]);
-  dup2 (app->pipefd[1], 3);
-  close (app->pipefd[1]);
-
-  /* On Linux, tell the bus process to exit if this process goes away */
-#ifdef __linux
-#include <sys/prctl.h>
-  prctl (PR_SET_PDEATHSIG, 15);
-#endif  
-}
-
 /**
  * unix_read_all_fd_to_string:
  *
@@ -276,24 +266,30 @@
   g_main_loop_quit (app->loop);
 } 
 
+#ifdef DBUS_DAEMON
+static void
+setup_bus_child_daemon (gpointer data)
+{
+  A11yBusLauncher *app = data;
+  (void) app;
+
+  close (app->pipefd[0]);
+  dup2 (app->pipefd[1], 3);
+  close (app->pipefd[1]);
+
+  /* On Linux, tell the bus process to exit if this process goes away */
+#ifdef __linux
+  prctl (PR_SET_PDEATHSIG, 15);
+#endif
+}
+
 static gboolean
-ensure_a11y_bus (A11yBusLauncher *app)
+ensure_a11y_bus_daemon (A11yBusLauncher *app, char *config_path)
 {
+  char *argv[] = { DBUS_DAEMON, config_path, "--nofork", "--print-address", 
"3", NULL };
   GPid pid;
-  char *argv[] = { DBUS_DAEMON, NULL, "--nofork", "--print-address", "3", NULL 
};
   char addr_buf[2048];
   GError *error = NULL;
-  const char *config_path = NULL;
-
-  if (app->a11y_bus_pid != 0)
-    return FALSE;
-
-  if (g_file_test (SYSCONFDIR"/at-spi2/accessibility.conf", 
G_FILE_TEST_EXISTS))
-      config_path = "--config-file="SYSCONFDIR"/at-spi2/accessibility.conf";
-  else
-      config_path = 
"--config-file="DATADIR"/defaults/at-spi2/accessibility.conf";
-
-  argv[1] = config_path;
 
   if (pipe (app->pipefd) < 0)
     g_error ("Failed to create pipe: %s", strerror (errno));
@@ -302,7 +298,7 @@
                       argv,
                       NULL,
                       G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD,
-                      setup_bus_child,
+                      setup_bus_child_daemon,
                       app,
                       &pid,
                       &error))
@@ -335,6 +331,136 @@
   app->a11y_bus_address = g_strchomp (g_strdup (addr_buf));
   g_debug ("a11y bus address: %s", app->a11y_bus_address);
 
+  return TRUE;
+
+error:
+  close (app->pipefd[0]);
+  close (app->pipefd[1]);
+  app->state = A11Y_BUS_STATE_ERROR;
+
+  return FALSE;
+}
+#else
+static gboolean
+ensure_a11y_bus_daemon (A11yBusLauncher *app, char *config_path)
+{
+       return FALSE;
+}
+#endif
+
+#ifdef DBUS_BROKER
+static void
+setup_bus_child_broker (gpointer data)
+{
+  A11yBusLauncher *app = data;
+  gchar *pid_str;
+  (void) app;
+
+  dup2 (app->listenfd, 3);
+  close (app->listenfd);
+  g_setenv("LISTEN_FDS", "1", TRUE);
+
+  pid_str = g_strdup_printf("%u", getpid());
+  g_setenv("LISTEN_PID", pid_str, TRUE);
+  g_free(pid_str);
+
+  /* Tell the bus process to exit if this process goes away */
+  prctl (PR_SET_PDEATHSIG, SIGTERM);
+}
+
+static gboolean
+ensure_a11y_bus_broker (A11yBusLauncher *app, char *config_path)
+{
+  char *argv[] = { DBUS_BROKER, config_path, "--scope", "user", NULL };
+  struct sockaddr_un addr = { .sun_family = AF_UNIX };
+  socklen_t addr_len = sizeof(addr);
+  GPid pid;
+  GError *error = NULL;
+
+  if ((app->listenfd = socket (PF_UNIX, SOCK_STREAM | SOCK_NONBLOCK, 0)) < 0)
+    g_error ("Failed to create listening socket: %s", strerror (errno));
+
+  if (bind (app->listenfd, (struct sockaddr *)&addr, sizeof(sa_family_t)) < 0)
+    g_error ("Failed to bind listening socket: %s", strerror (errno));
+
+  if (getsockname (app->listenfd, (struct sockaddr *)&addr, &addr_len) < 0)
+    g_error ("Failed to get socket name for listening socket: %s", 
strerror(errno));
+
+  if (listen (app->listenfd, 1024) < 0)
+    g_error ("Failed to listen on socket: %s", strerror(errno));
+
+  if (!g_spawn_async (NULL,
+                      argv,
+                      NULL,
+                      G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD,
+                      setup_bus_child_broker,
+                      app,
+                      &pid,
+                      &error))
+    {
+      app->a11y_bus_pid = -1;
+      app->a11y_launch_error_message = g_strdup (error->message);
+      g_clear_error (&error);
+      goto error;
+    }
+
+  close (app->listenfd);
+  app->listenfd = -1;
+
+  g_child_watch_add (pid, on_bus_exited, app);
+  app->a11y_bus_pid = pid;
+  g_debug ("Launched a11y bus, child is %ld", (long) pid);
+  app->state = A11Y_BUS_STATE_RUNNING;
+
+  app->a11y_bus_address = g_strconcat("unix:abstract=", addr.sun_path + 1, 
NULL);
+  g_debug ("a11y bus address: %s", app->a11y_bus_address);
+
+  return TRUE;
+
+error:
+  close (app->listenfd);
+  app->state = A11Y_BUS_STATE_ERROR;
+
+  return FALSE;
+}
+#else
+static gboolean
+ensure_a11y_bus_broker (A11yBusLauncher *app, char *config_path)
+{
+       return FALSE;
+}
+#endif
+
+static gboolean
+ensure_a11y_bus (A11yBusLauncher *app)
+{
+  char *config_path = NULL;
+  gboolean success = FALSE;
+
+  if (app->a11y_bus_pid != 0)
+    return FALSE;
+
+  if (g_file_test (SYSCONFDIR"/at-spi2/accessibility.conf", 
G_FILE_TEST_EXISTS))
+      config_path = "--config-file="SYSCONFDIR"/at-spi2/accessibility.conf";
+  else
+      config_path = 
"--config-file="DATADIR"/defaults/at-spi2/accessibility.conf";
+
+#ifdef WANT_DBUS_BROKER
+    success = ensure_a11y_bus_broker (app, config_path);
+    if (!success)
+      {
+        if (!ensure_a11y_bus_daemon (app, config_path))
+            return FALSE;
+      }
+#else
+    success = ensure_a11y_bus_daemon (app, config_path);
+    if (!success)
+      {
+        if (!ensure_a11y_bus_broker (app, config_path))
+            return FALSE;
+      }
+#endif
+
 #ifdef HAVE_X11
   {
     Display *display = XOpenDisplay (NULL);
@@ -353,13 +479,6 @@
 #endif
 
   return TRUE;
-  
- error:
-  close (app->pipefd[0]);
-  close (app->pipefd[1]);
-  app->state = A11Y_BUS_STATE_ERROR;
-
-  return FALSE;
 }
 
 static void
@@ -695,6 +814,15 @@
 static GSettings *
 get_schema (const gchar *name)
 {
+#if GLIB_CHECK_VERSION (2, 32, 0)
+  GSettingsSchemaSource *source = g_settings_schema_source_get_default ();
+  GSettingsSchema *schema = g_settings_schema_source_lookup (source, name, 
FALSE);
+
+  if (schema == NULL)
+    return NULL;
+
+  return g_settings_new_full (schema, NULL, NULL);
+#else
   const char * const *schemas = NULL;
   gint i;
 
@@ -706,13 +834,13 @@
   }
 
   return NULL;
+#endif
 }
 
 static void
 gsettings_key_changed (GSettings *gsettings, const gchar *key, void *user_data)
 {
   gboolean new_val = g_settings_get_boolean (gsettings, key);
-  A11yBusLauncher *app = user_data;
 
   if (!strcmp (key, "toolkit-accessibility"))
     handle_a11y_enabled_change (_global_app, new_val, FALSE);
@@ -724,10 +852,6 @@
 main (int    argc,
       char **argv)
 {
-  GError *error = NULL;
-  GMainLoop *loop;
-  GDBusConnection *session_bus;
-  int name_owner_id;
   gboolean a11y_set = FALSE;
   gboolean screen_reader_set = FALSE;
   gint i;
@@ -783,14 +907,15 @@
   introspection_data = g_dbus_node_info_new_for_xml (introspection_xml, NULL);
   g_assert (introspection_data != NULL);
 
-  name_owner_id = g_bus_own_name (G_BUS_TYPE_SESSION,
-                                  "org.a11y.Bus",
-                                  G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT,
-                                  on_bus_acquired,
-                                  on_name_acquired,
-                                  on_name_lost,
-                                  _global_app,
-                                  NULL);
+  _global_app->name_owner_id =
+    g_bus_own_name (G_BUS_TYPE_SESSION,
+                    "org.a11y.Bus",
+                    G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT,
+                    on_bus_acquired,
+                    on_name_acquired,
+                    on_name_lost,
+                    _global_app,
+                    NULL);
 
   g_main_loop_run (_global_app->loop);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.28.0/bus/meson.build 
new/at-spi2-core-2.30.0/bus/meson.build
--- old/at-spi2-core-2.28.0/bus/meson.build     2018-03-13 01:30:12.000000000 
+0100
+++ new/at-spi2-core-2.30.0/bus/meson.build     2018-09-03 22:50:10.000000000 
+0200
@@ -31,8 +31,13 @@
                install: true,
                install_dir: systemd_user_dir)
 
+launcher_args = [
+             '-DSYSCONFDIR="@0@"'.format(atspi_sysconfdir),
+             '-DDATADIR="@0@"'.format(atspi_datadir),
+           ]
+
 if get_option('dbus_daemon') != 'default'
-  dbus_daemon = get_option('dbus_daemon')
+  launcher_args += '-DDBUS_DAEMON="@0@"'.format(get_option('dbus_daemon'))
 else
   dbus_daemon = find_program('dbus-daemon',
                              '/sbin/dbus-daemon',
@@ -40,16 +45,29 @@
                              '/libexec/dbus-daemon',
                              '/usr/libexec/dbus-daemon',
                              '/usr/pkg/bin/dbus-daemon',
-                             required: true).path()
+                             required: false)
+  if dbus_daemon.found()
+    launcher_args += '-DDBUS_DAEMON="@0@"'.format(dbus_daemon.path())
+  endif
+endif
+
+if get_option('dbus_broker') != 'default'
+  launcher_args += '-DDBUS_BROKER="@0@"'.format(get_option('dbus_broker'))
+else
+  dbus_broker = find_program('dbus-broker-launch',
+                             required: false)
+  if dbus_broker.found()
+    launcher_args += '-DDBUS_BROKER="@0@"'.format(dbus_broker.path())
+  endif
+endif
+
+if get_option('default_bus') == 'dbus-broker'
+  launcher_args += '-DWANT_DBUS_BROKER'
 endif
 
 executable('at-spi-bus-launcher', 'at-spi-bus-launcher.c',
            include_directories: [ root_inc, include_directories('.') ],
            dependencies: [ gio_dep, x11_deps ],
-           c_args: [
-             '-DSYSCONFDIR="@0@"'.format(atspi_sysconfdir),
-             '-DDATADIR="@0@"'.format(atspi_datadir),
-             '-DDBUS_DAEMON="@0@"'.format(dbus_daemon),
-           ],
+           c_args: launcher_args,
            install: true,
            install_dir: atspi_libexecdir)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.28.0/dbind/dbtest.c 
new/at-spi2-core-2.30.0/dbind/dbtest.c
--- old/at-spi2-core-2.28.0/dbind/dbtest.c      2018-03-13 01:30:12.000000000 
+0100
+++ new/at-spi2-core-2.30.0/dbind/dbtest.c      2018-09-03 22:50:10.000000000 
+0200
@@ -27,7 +27,7 @@
 #define DESKICE_PATH      "/Novell/ICEDesktop/Daemon"
 #define DESKICE_NAMESPACE "Novell.ICEDesktop.Daemon"
 
-void marshal (DBusMessage *msg, char *type, void *ptr)
+void marshal (DBusMessage *msg, const char *type, void *ptr)
 {
     DBusMessageIter iter;
 
@@ -35,7 +35,7 @@
     dbind_any_marshal (&iter, &type, &ptr);
 }
 
-void demarshal (DBusMessage *msg, char *type, void *ptr)
+void demarshal (DBusMessage *msg, const char *type, void *ptr)
 {
     DBusMessageIter iter;
 
@@ -317,8 +317,8 @@
     DBusMessage *msg;
     DBusMessageIter iter;
     TwoVal i, o;
-    char *type_twoval = TYPEOF_TWOVAL;
-    char *type;
+    const char *type_twoval = TYPEOF_TWOVAL;
+    const char *type;
     void *ptr;
 
     msg = dbus_message_new (DBUS_MESSAGE_TYPE_METHOD_CALL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/at-spi2-core-2.28.0/doc/libatspi/libatspi-sections.txt 
new/at-spi2-core-2.30.0/doc/libatspi/libatspi-sections.txt
--- old/at-spi2-core-2.28.0/doc/libatspi/libatspi-sections.txt  2018-03-13 
01:30:12.000000000 +0100
+++ new/at-spi2-core-2.30.0/doc/libatspi/libatspi-sections.txt  2018-09-03 
22:50:10.000000000 +0200
@@ -441,6 +441,8 @@
 atspi_component_get_mdi_z_order
 atspi_component_grab_focus
 atspi_component_get_alpha
+atspi_component_scroll_to
+atspi_component_scroll_to_point
 <SUBSECTION Standard>
 ATSPI_COMPONENT
 ATSPI_IS_COMPONENT
@@ -524,6 +526,8 @@
 ATSPI_RELATIONTYPE_COUNT
 AtspiRole
 ATSPI_ROLE_COUNT
+AtspiScrollType
+ATSPI_SCROLLTYPE_COUNT
 </SECTION>
 
 <SECTION>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/at-spi2-core-2.28.0/doc/libatspi/tmpl/atspi-constants.sgml 
new/at-spi2-core-2.30.0/doc/libatspi/tmpl/atspi-constants.sgml
--- old/at-spi2-core-2.28.0/doc/libatspi/tmpl/atspi-constants.sgml      
2018-03-13 01:30:12.000000000 +0100
+++ new/at-spi2-core-2.30.0/doc/libatspi/tmpl/atspi-constants.sgml      
2018-09-03 22:50:10.000000000 +0200
@@ -39,6 +39,26 @@
 
 
 
+<!-- ##### ENUM AtspiScrollType ##### -->
+<para>
+
+</para>
+
+@ATSPI_SCROLL_TOP_LEFT:
+@ATSPI_SCROLL_BOTTOM_RIGHT:
+@ATSPI_SCROLL_TOP_EDGE:
+@ATSPI_SCROLL_BOTTOM_EDGE:
+@ATSPI_SCROLL_LEFT_EDGE:
+@ATSPI_SCROLL_RIGHT_EDGE:
+@ATSPI_SCROLL_ANYWHERE:
+
+<!-- ##### MACRO ATSPI_SCROLLTYPE_COUNT ##### -->
+<para>
+
+</para>
+
+
+
 <!-- ##### ENUM AtspiCoordType ##### -->
 <para>
 
@@ -46,6 +66,7 @@
 
 @ATSPI_COORD_TYPE_SCREEN: 
 @ATSPI_COORD_TYPE_WINDOW: 
+@ATSPI_COORD_TYPE_PARENT:
 
 <!-- ##### MACRO ATSPI_COORD_TYPE_COUNT ##### -->
 <para>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.28.0/idl/component.didl 
new/at-spi2-core-2.30.0/idl/component.didl
--- old/at-spi2-core-2.28.0/idl/component.didl  2018-03-13 01:30:12.000000000 
+0100
+++ new/at-spi2-core-2.30.0/idl/component.didl  2018-09-03 22:50:10.000000000 
+0200
@@ -54,7 +54,30 @@
                LAYER_WINDOW,
                LAYER_LAST_DEFINED
        }
-       
+
+       /*
+         Describes where the object should be placed on the window.
+        */
+       enum uint32 ScrollType {
+               SCROLL_TOP_LEFT = 0,
+               SCROLL_BOTTOM_RIGHT,
+               SCROLL_TOP_EDGE,
+               SCROLL_BOTTOM_EDGE,
+               SCROLL_LEFT_EDGE,
+               SCROLL_RIGHT_EDGE,
+               SCROLL_ANYWHERE
+       }
+
+       /*
+          Specifies whether the coordinates are relative to the screen, to the
+          window, or to the parent object.
+        */
+       enum uint32 CoordType {
+               COORD_TYPE_SCREEN = 0,
+               COORD_TYPE_WINDOW,
+               COORD_TYPE_PARENT
+       }
+
        /*
          True if the specified point lies within the components bounding box.
          */ 
@@ -136,4 +159,20 @@
        method GetAlpha reply {
                double alpha;
        }
+
+       /*
+         Scroll this object so it becomes visible on the screen.
+        */
+       method ScrollTo {
+               ScrollType type;
+       }
+
+       /*
+         Scroll this object so it becomes visible on the screen at a given 
position.
+        */
+       method ScrollToPoint {
+               CoordType type;
+               int32 x;
+               int32 y;
+       }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.28.0/meson.build 
new/at-spi2-core-2.30.0/meson.build
--- old/at-spi2-core-2.28.0/meson.build 2018-03-13 01:30:12.000000000 +0100
+++ new/at-spi2-core-2.30.0/meson.build 2018-09-03 22:50:10.000000000 +0200
@@ -1,5 +1,5 @@
 project('at-spi2-core', 'c',
-        version: '2.28.0',
+        version: '2.29.1',
         license: 'LGPLv2.1+',
         default_options: [
           'buildtype=debugoptimized',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.28.0/meson_options.txt 
new/at-spi2-core-2.30.0/meson_options.txt
--- old/at-spi2-core-2.28.0/meson_options.txt   2018-03-13 01:30:12.000000000 
+0100
+++ new/at-spi2-core-2.30.0/meson_options.txt   2018-09-03 22:50:10.000000000 
+0200
@@ -6,6 +6,15 @@
        description: 'The path of the DBus daemon',
        type: 'string',
        value: 'default')
+option('dbus_broker',
+       description: 'The path of the DBus broker',
+       type: 'string',
+       value: 'default')
+option('default_bus',
+       description: 'The default DBus implementation to use',
+       type: 'combo',
+       choices: ['dbus-daemon', 'dbus-broker'],
+       value: 'dbus-daemon')
 option('systemd_user_dir',
        description: 'Location of the systemd user services',
        type: 'string',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/at-spi2-core-2.28.0/registryd/deviceeventcontroller-x11.c 
new/at-spi2-core-2.30.0/registryd/deviceeventcontroller-x11.c
--- old/at-spi2-core-2.28.0/registryd/deviceeventcontroller-x11.c       
2018-03-13 01:30:12.000000000 +0100
+++ new/at-spi2-core-2.30.0/registryd/deviceeventcontroller-x11.c       
2018-09-03 22:50:10.000000000 +0200
@@ -1018,8 +1018,10 @@
 {
        unsigned int time = CurrentTime;
        unsigned int bounce_delay;
+#ifdef THIS_IS_BROKEN 
        unsigned int elapsed_msec;
        struct timeval tv;
+#endif
        DEControllerPrivateData *priv = controller->priv;
 
        spi_x_error_trap ();
@@ -1028,15 +1030,15 @@
                bounce_delay = xkb_get_bouncekeys_delay (controller); 
                 if (bounce_delay)
                {
+#ifdef THIS_IS_BROKEN
                        gettimeofday (&tv, NULL);
                        elapsed_msec =
                                (tv.tv_sec - priv->last_release_time.tv_sec) * 
1000
                                + (tv.tv_usec - 
priv->last_release_time.tv_usec) / 1000;
-#ifdef SPI_XKB_DEBUG                   
+# ifdef SPI_XKB_DEBUG
                        fprintf (stderr, "%d ms elapsed (%ld usec)\n", 
elapsed_msec,
                                 (long) (tv.tv_usec - 
priv->last_release_time.tv_usec));
-#endif
-#ifdef THIS_IS_BROKEN
+# endif
                        if (elapsed_msec < bounce_delay)
                                time = bounce_delay - elapsed_msec + 1;
 #else
@@ -1062,8 +1064,10 @@
 {
        unsigned int time = CurrentTime;
        unsigned int slow_delay;
+#ifdef THIS_IS_BROKEN_DUNNO_WHY
        unsigned int elapsed_msec;
        struct timeval tv;
+#endif
        DEControllerPrivateData *priv = controller->priv;
 
        spi_x_error_trap ();
@@ -1072,15 +1076,15 @@
                slow_delay = xkb_get_slowkeys_delay (controller);
                if (slow_delay)
                {
+#ifdef THIS_IS_BROKEN_DUNNO_WHY
                        gettimeofday (&tv, NULL);
                        elapsed_msec =
                                (tv.tv_sec - priv->last_press_time.tv_sec) * 
1000
                                + (tv.tv_usec - priv->last_press_time.tv_usec) 
/ 1000;
-#ifdef SPI_XKB_DEBUG                   
+# ifdef SPI_XKB_DEBUG
                        fprintf (stderr, "%d ms elapsed (%ld usec)\n", 
elapsed_msec,
                                 (long) (tv.tv_usec - 
priv->last_press_time.tv_usec));
-#endif
-#ifdef THIS_IS_BROKEN_DUNNO_WHY
+# endif
                        if (elapsed_msec < slow_delay)
                                time = slow_delay - elapsed_msec + 1;
 #else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.28.0/registryd/reentrant-list.c 
new/at-spi2-core-2.30.0/registryd/reentrant-list.c
--- old/at-spi2-core-2.28.0/registryd/reentrant-list.c  2018-03-13 
01:30:12.000000000 +0100
+++ new/at-spi2-core-2.30.0/registryd/reentrant-list.c  2018-09-03 
22:50:10.000000000 +0200
@@ -45,7 +45,7 @@
   GList     *next;
   GList     *element;
   gboolean   first_item;
-  GList *dummy; /* suppress warning */
+  GList *dummy G_GNUC_UNUSED;
 
   g_return_if_fail (element_ptr != NULL);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.28.0/xml/Component.xml 
new/at-spi2-core-2.30.0/xml/Component.xml
--- old/at-spi2-core-2.28.0/xml/Component.xml   2018-03-13 01:30:12.000000000 
+0100
+++ new/at-spi2-core-2.30.0/xml/Component.xml   2018-09-03 22:50:10.000000000 
+0200
@@ -72,5 +72,15 @@
     <arg direction="out" type="b"/>
   </method>
 
+  <method name="ScrollTo">
+    <arg direction="in" name="type" type="u"/>
+  </method>
+
+  <method name="ScrollToPoint">
+    <arg direction="in" name="type" type="u"/>
+    <arg direction="in" name="x" type="i"/>
+    <arg direction="in" name="y" type="i"/>
+  </method>
+
 </interface>
 </node>

++++++ at-spi2-core-bus-launch-use__linux__.patch ++++++
>From 2e449f62a9f6a8a3f47e0819b1a0af24d1caee27 Mon Sep 17 00:00:00 2001
From: David Herrmann <[email protected]>
Date: Fri, 10 Aug 2018 16:15:35 +0200
Subject: [PATCH] bus-launch: use __linux__ over __linux

The canonical way to check for linux support is '__linux__', not
'__linux'. Particularly, on ppc64le '__linux' is not defined and the
build will fail.

For reference, see:

    https://sourceforge.net/p/predef/wiki/OperatingSystems/
---
 bus/at-spi-bus-launcher.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/bus/at-spi-bus-launcher.c b/bus/at-spi-bus-launcher.c
index 5d58dff..7572cb6 100644
--- a/bus/at-spi-bus-launcher.c
+++ b/bus/at-spi-bus-launcher.c
@@ -25,7 +25,7 @@
 #include <unistd.h>
 #include <string.h>
 #include <signal.h>
-#ifdef __linux
+#ifdef __linux__
 #include <sys/prctl.h>
 #include <sys/socket.h>
 #include <sys/un.h>
@@ -278,7 +278,7 @@ setup_bus_child_daemon (gpointer data)
   close (app->pipefd[1]);
 
   /* On Linux, tell the bus process to exit if this process goes away */
-#ifdef __linux
+#ifdef __linux__
   prctl (PR_SET_PDEATHSIG, 15);
 #endif
 }
-- 
2.18.0

++++++ at-spi2-core-generate-pc.patch ++++++
>From 8a2107d67cf7a574f14836252d1952a5adea889f Mon Sep 17 00:00:00 2001
From: Soapux <[email protected]>
Date: Thu, 6 Sep 2018 11:56:49 -0500
Subject: [PATCH] meson: Generate a pkg-config file

Use Meson's pkgconfig module to generate the pkg-config file
for us instead of using a template.
---
 atspi-2.pc.in     | 11 -----------
 atspi/meson.build | 10 ++++++++++
 meson.build       | 14 --------------
 3 files changed, 10 insertions(+), 25 deletions(-)
 delete mode 100644 atspi-2.pc.in

diff --git a/atspi-2.pc.in b/atspi-2.pc.in
deleted file mode 100644
index 71d028a..0000000
--- a/atspi-2.pc.in
+++ /dev/null
@@ -1,11 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: atspi
-Description: Accessibility Technology software library
-Requires: dbus-1 glib-2.0
-Version: @VERSION@
-Libs: -L${libdir} -latspi
-Cflags: -I${includedir}/at-spi-2.0
diff --git a/atspi/meson.build b/atspi/meson.build
index 1f8d021..b7a9357 100644
--- a/atspi/meson.build
+++ b/atspi/meson.build
@@ -113,3 +113,13 @@ if have_gir
   )
 endif
 
+pkgconfig = import('pkgconfig')
+pkgconfig.generate(
+  name: 'atspi',
+  description: 'Accessibility Technology software library',
+  version: meson.project_version(),
+  libraries: atspi,
+  requires: 'dbus-1 glib-2.0',
+  subdirs: 'at-spi-2.0',
+  filebase: 'atspi-2',
+)
diff --git a/meson.build b/meson.build
index 2b6ef8a..8ef8ae3 100644
--- a/meson.build
+++ b/meson.build
@@ -109,20 +109,6 @@ xgettext = find_program('xgettext', required : false)
 
 configure_file(output: 'config.h', configuration: at_spi_conf)
 
-# Compat variables for pkgconfig
-pkgconf = configuration_data()
-pkgconf.set('prefix', get_option('prefix'))
-pkgconf.set('exec_prefix', get_option('prefix'))
-pkgconf.set('libdir', atspi_libdir)
-pkgconf.set('includedir', atspi_includedir)
-pkgconf.set('VERSION', meson.project_version())
-
-configure_file(input: 'atspi-2.pc.in',
-               output: 'atspi-2.pc',
-               configuration: pkgconf,
-               install: true,
-               install_dir: join_paths(get_option('libdir'), 'pkgconfig'))
-
 gnome = import('gnome')
 
 subdir('dbind')
-- 
2.18.0


Reply via email to