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
