From 4cb3b87be4684cbe55639f6acd58b9cfad3c81b1 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Dec 04 2009 21:50:46 +0000 Subject: 1.29.3 --- diff --git a/.cvsignore b/.cvsignore index 3525214..060a29b 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -at-spi-1.28.0.tar.bz2 +at-spi-1.29.3.tar.bz2 diff --git a/at-spi-1.21.92-firefoxperf1.patch b/at-spi-1.21.92-firefoxperf1.patch deleted file mode 100644 index 970b55d..0000000 --- a/at-spi-1.21.92-firefoxperf1.patch +++ /dev/null @@ -1,39 +0,0 @@ -http://bugzilla.gnome.org/show_bug.cgi?id=350552 -https://bugzilla.mozilla.org/show_bug.cgi?id=418845#c28 -https://bugzilla.mozilla.org/show_bug.cgi?id=418845#c41 (part 2) - -Index: atk-bridge/bridge.c -=================================================================== ---- atk-bridge/bridge.c (revision 988) -+++ atk-bridge/bridge.c (working copy) -@@ -1160,13 +1160,22 @@ - else if ((signal_query.signal_id == atk_signal_children_changed) && gobject) - { - detail1 = g_value_get_uint (param_values + 1); -- ao = atk_object_ref_accessible_child (ATK_OBJECT (gobject), -- detail1); -- if (ao) -- { -- s_ao = spi_accessible_new (ao); -- c_obj = BONOBO_OBJREF (s_ao); -- spi_atk_bridge_init_object (&any, ATK_OBJECT (gobject), &c_obj); -+ gpointer child = g_value_get_pointer (param_values + 2); -+ if (ATK_IS_OBJECT (child)) -+ { -+ ao = ATK_OBJECT (child); -+ g_object_ref (ao); -+ } -+ else -+ { -+ ao = atk_object_ref_accessible_child (ATK_OBJECT (gobject), -+ detail1); -+ } -+ if (ao) -+ { -+ s_ao = spi_accessible_new (ao); -+ c_obj = BONOBO_OBJREF (s_ao); -+ spi_atk_bridge_init_object (&any, ATK_OBJECT (gobject), &c_obj); - g_object_unref (ao); - } - else - diff --git a/at-spi-fixed-sm.patch b/at-spi-fixed-sm.patch deleted file mode 100644 index 08fea66..0000000 --- a/at-spi-fixed-sm.patch +++ /dev/null @@ -1,406 +0,0 @@ -diff -up at-spi-1.28.0/registryd/registry-main.c.fixed-sm at-spi-1.28.0/registryd/registry-main.c ---- at-spi-1.28.0/registryd/registry-main.c.fixed-sm 2009-09-22 02:50:10.000000000 -0400 -+++ at-spi-1.28.0/registryd/registry-main.c 2009-09-27 16:36:17.805030309 -0400 -@@ -33,28 +33,133 @@ - #include "registry.h" - #include - --#ifdef HAVE_SM --#include --#include --#include --#endif -- - #define spi_get_display() GDK_DISPLAY() - - static void registry_set_ior (SpiRegistry *registry); --static void registry_session_init (const char *previous_client_id, const char *exe); - static void set_gtk_modules (DBusGProxy *gsm); --#ifdef HAVE_SM --static void die_callback (SmcConn smc_conn, SmPointer client_data); --static void save_yourself_callback (SmcConn smc_conn, -- SmPointer client_data, -- int save_style, -- Bool shutdown, -- int interact_style, -- Bool fast); - --static SmcConn session_connection; --#endif -+#define SM_DBUS_NAME "org.gnome.SessionManager" -+#define SM_DBUS_PATH "/org/gnome/SessionManager" -+#define SM_DBUS_INTERFACE "org.gnome.SessionManager" -+ -+#define SM_CLIENT_DBUS_INTERFACE "org.gnome.SessionManager.ClientPrivate" -+ -+static DBusGConnection *bus_connection = NULL; -+static DBusGProxy *sm_proxy = NULL; -+static char *client_id = NULL; -+static DBusGProxy *client_proxy = NULL; -+ -+static gboolean -+session_manager_connect (void) -+{ -+ -+ if (bus_connection == NULL) { -+ GError *error; -+ -+ error = NULL; -+ bus_connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error); -+ if (bus_connection == NULL) { -+ g_message ("Failed to connect to the session bus: %s", -+ error->message); -+ g_error_free (error); -+ exit (1); -+ } -+ } -+ -+ sm_proxy = dbus_g_proxy_new_for_name (bus_connection, -+ SM_DBUS_NAME, -+ SM_DBUS_PATH, -+ SM_DBUS_INTERFACE); -+ return (sm_proxy != NULL); -+} -+ -+static void -+stop_cb (gpointer data) -+{ -+ gtk_main_quit (); -+} -+ -+static gboolean -+end_session_response (gboolean is_okay, const gchar *reason) -+{ -+ gboolean ret; -+ GError *error = NULL; -+ -+ ret = dbus_g_proxy_call (client_proxy, "EndSessionResponse", -+ &error, -+ G_TYPE_BOOLEAN, is_okay, -+ G_TYPE_STRING, reason, -+ G_TYPE_INVALID, -+ G_TYPE_INVALID); -+ -+ if (!ret) { -+ g_warning ("Failed to send session response %s", error->message); -+ g_error_free (error); -+ } -+ -+ return ret; -+} -+ -+static void -+query_end_session_cb (guint flags, gpointer data) -+{ -+ end_session_response (TRUE, NULL); -+} -+ -+static void -+end_session_cb (guint flags, gpointer data) -+{ -+ end_session_response (TRUE, NULL); -+ gtk_main_quit (); -+} -+static gboolean -+register_client (void) -+{ -+ GError *error; -+ gboolean res; -+ const char *startup_id; -+ const char *app_id; -+ -+ startup_id = g_getenv ("DESKTOP_AUTOSTART_ID"); -+ app_id = "at-spi-registryd.desktop"; -+ -+ error = NULL; -+ res = dbus_g_proxy_call (sm_proxy, -+ "RegisterClient", -+ &error, -+ G_TYPE_STRING, app_id, -+ G_TYPE_STRING, startup_id, -+ G_TYPE_INVALID, -+ DBUS_TYPE_G_OBJECT_PATH, &client_id, -+ G_TYPE_INVALID); -+ if (! res) { -+ g_warning ("Failed to register client: %s", error->message); -+ g_error_free (error); -+ return FALSE; -+ } -+ -+ g_debug ("Client registered with session manager: %s", client_id); -+ client_proxy = dbus_g_proxy_new_for_name (bus_connection, -+ SM_DBUS_NAME, -+ client_id, -+ SM_CLIENT_DBUS_INTERFACE); -+ -+ dbus_g_proxy_add_signal (client_proxy, "Stop", G_TYPE_INVALID); -+ dbus_g_proxy_connect_signal (client_proxy, "Stop", -+ G_CALLBACK (stop_cb), NULL, NULL); -+ -+ dbus_g_proxy_add_signal (client_proxy, "QueryEndSession", G_TYPE_UINT, G_TYPE_INVALID); -+ dbus_g_proxy_connect_signal (client_proxy, "QueryEndSession", -+ G_CALLBACK (query_end_session_cb), NULL, NULL); -+ -+ dbus_g_proxy_add_signal (client_proxy, "EndSession", G_TYPE_UINT, G_TYPE_INVALID); -+ dbus_g_proxy_connect_signal (client_proxy, "EndSession", -+ G_CALLBACK (end_session_cb), NULL, NULL); -+ -+ g_unsetenv ("DESKTOP_AUTOSTART_ID"); -+ -+ return TRUE; -+} - - int - main (int argc, char **argv) -@@ -116,17 +221,15 @@ main (int argc, char **argv) - - registry_set_ior (registry); - -- /* If DESKTOP_AUTOSTART_ID exists, assume we're started by session -- * manager and connect to it. */ -- const char *desktop_autostart_id = g_getenv ("DESKTOP_AUTOSTART_ID"); -- if (desktop_autostart_id != NULL) { -- char *client_id = g_strdup (desktop_autostart_id); -- /* Unset DESKTOP_AUTOSTART_ID in order to avoid child processes to -- * use the same client id. */ -- g_unsetenv ("DESKTOP_AUTOSTART_ID"); -- registry_session_init (client_id, argv[0]); -- g_free (client_id); -- } -+ if (!session_manager_connect ()) -+ { -+ g_warning ("Unable to connect to session manager"); -+ } -+ -+ if (!register_client ()) -+ { -+ g_warning ("Unable to register client with session manager"); -+ } - - bonobo_main (); - } -@@ -164,224 +267,6 @@ registry_set_ior (SpiRegistry *registry) - - } - --#ifdef HAVE_SM --/* This is called when data is available on an ICE connection. */ --static gboolean --process_ice_messages (GIOChannel *channel, -- GIOCondition condition, -- gpointer client_data) --{ -- IceConn connection = (IceConn) client_data; -- IceProcessMessagesStatus status; -- -- /* This blocks infinitely sometimes. I don't know what -- * to do about it. Checking "condition" just breaks -- * session management. -- */ -- status = IceProcessMessages (connection, NULL, NULL); -- -- if (status == IceProcessMessagesIOError) -- { --#if 0 -- IcePointer context = IceGetConnectionContext (connection); --#endif -- -- /* We were disconnected */ -- IceSetShutdownNegotiation (connection, False); -- IceCloseConnection (connection); -- -- return FALSE; -- } -- -- return TRUE; --} -- --/* This is called when a new ICE connection is made. It arranges for -- the ICE connection to be handled via the event loop. */ --static void --new_ice_connection (IceConn connection, IcePointer client_data, Bool opening, -- IcePointer *watch_data) --{ -- guint input_id; -- -- if (opening) -- { -- /* Make sure we don't pass on these file descriptors to any -- * exec'ed children -- */ -- GIOChannel *channel; -- -- fcntl (IceConnectionNumber (connection), F_SETFD, -- fcntl (IceConnectionNumber (connection), F_GETFD, 0) | FD_CLOEXEC); -- -- channel = g_io_channel_unix_new (IceConnectionNumber (connection)); -- -- input_id = g_io_add_watch (channel, -- G_IO_IN | G_IO_ERR, -- process_ice_messages, -- connection); -- -- g_io_channel_unref (channel); -- -- *watch_data = (IcePointer) GUINT_TO_POINTER (input_id); -- } -- else -- { -- input_id = GPOINTER_TO_UINT ((gpointer) *watch_data); -- -- g_source_remove (input_id); -- } --} -- --static IceIOErrorHandler ice_installed_handler; -- --/* We call any handler installed before (or after) gnome_ice_init but -- avoid calling the default libICE handler which does an exit() */ --static void --ice_io_error_handler (IceConn connection) --{ -- if (ice_installed_handler) -- (*ice_installed_handler) (connection); --} -- --static void --ice_init (void) --{ -- static gboolean ice_initted = FALSE; -- -- if (! ice_initted) -- { -- IceIOErrorHandler default_handler; -- -- ice_installed_handler = IceSetIOErrorHandler (NULL); -- default_handler = IceSetIOErrorHandler (ice_io_error_handler); -- -- if (ice_installed_handler == default_handler) -- ice_installed_handler = NULL; -- -- IceAddConnectionWatch (new_ice_connection, NULL); -- -- ice_initted = TRUE; -- } --} --#endif -- --void --registry_session_init (const char *previous_client_id, const char *exe) --{ --#ifdef HAVE_SM -- char buf[256]; -- char *client_id; -- unsigned long mask; -- SmcCallbacks callbacks; -- -- ice_init(); -- -- callbacks.save_yourself.callback = save_yourself_callback; -- callbacks.save_yourself.client_data = NULL; -- callbacks.die.callback = die_callback; -- callbacks.die.client_data = NULL; -- -- mask = SmcSaveYourselfProcMask | SmcDieProcMask; -- -- session_connection = -- SmcOpenConnection (NULL, /* use SESSION_MANAGER env */ -- NULL, /* means use existing ICE connection */ -- SmProtoMajor, -- SmProtoMinor, -- mask, -- &callbacks, -- (char*) previous_client_id, -- &client_id, -- 255, buf); -- -- if (session_connection != NULL) { -- SmProp prop1, prop2, prop3, prop4, prop5, prop6, *props[6]; -- SmPropValue prop1val, prop2val, prop3val, prop4val, prop5val, prop6val; -- char pid[32]; -- char hint = SmRestartImmediately; -- char priority = 1; /* low to run before other apps */ -- -- prop1.name = SmProgram; -- prop1.type = SmARRAY8; -- prop1.num_vals = 1; -- prop1.vals = &prop1val; -- prop1val.value = exe; -- prop1val.length = strlen (exe); -- -- /* twm sets getuid() for this, but the SM spec plainly -- * says pw_name, twm is on crack -- */ -- prop2.name = SmUserID; -- prop2.type = SmARRAY8; -- prop2.num_vals = 1; -- prop2.vals = &prop2val; -- prop2val.value = (char*) g_get_user_name (); -- prop2val.length = strlen (prop2val.value); -- -- prop3.name = SmRestartStyleHint; -- prop3.type = SmCARD8; -- prop3.num_vals = 1; -- prop3.vals = &prop3val; -- prop3val.value = &hint; -- prop3val.length = 1; -- -- sprintf (pid, "%d", getpid ()); -- prop4.name = SmProcessID; -- prop4.type = SmARRAY8; -- prop4.num_vals = 1; -- prop4.vals = &prop4val; -- prop4val.value = pid; -- prop4val.length = strlen (prop4val.value); -- -- /* Always start in home directory */ -- prop5.name = SmCurrentDirectory; -- prop5.type = SmARRAY8; -- prop5.num_vals = 1; -- prop5.vals = &prop5val; -- prop5val.value = (char*) g_get_home_dir (); -- prop5val.length = strlen (prop5val.value); -- -- prop6.name = "_GSM_Priority"; -- prop6.type = SmCARD8; -- prop6.num_vals = 1; -- prop6.vals = &prop6val; -- prop6val.value = &priority; -- prop6val.length = 1; -- -- props[0] = &prop1; -- props[1] = &prop2; -- props[2] = &prop3; -- props[3] = &prop4; -- props[4] = &prop5; -- props[5] = &prop6; -- -- SmcSetProperties (session_connection, 6, props); -- } -- --#endif --} -- --#ifdef HAVE_SM --static void --die_callback (SmcConn smc_conn, SmPointer client_data) --{ -- SmcCloseConnection (session_connection, 0, NULL); -- bonobo_main_quit (); --} -- --static void --save_yourself_callback (SmcConn smc_conn, -- SmPointer client_data, -- int save_style, -- Bool shutdown, -- int interact_style, -- Bool fast) --{ -- SmcSaveYourselfDone (session_connection, TRUE); --} --#endif -- - static void - set_gtk_modules (DBusGProxy *gsm) - { diff --git a/at-spi-silence-no-event-spew.patch b/at-spi-silence-no-event-spew.patch deleted file mode 100644 index 62b6526..0000000 --- a/at-spi-silence-no-event-spew.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naurp at-spi-1.23.6.orig/atk-bridge/bridge.c at-spi-1.23.6/atk-bridge/bridge.c ---- at-spi-1.23.6.orig/atk-bridge/bridge.c 2008-08-15 13:23:16.000000000 -0400 -+++ at-spi-1.23.6/atk-bridge/bridge.c 2008-08-15 13:26:15.000000000 -0400 -@@ -470,7 +470,7 @@ spi_atk_bridget_get_dec (void) - - if (BONOBO_EX (&ev)) - { -- g_warning (_("failure: no device event controller found.\n")); -+ DBG (1, g_warning (_("failure: no device event controller found.\n"))); - registry_died = TRUE; - device_event_controller = CORBA_OBJECT_NIL; - } diff --git a/at-spi-unneeded-deps.patch b/at-spi-unneeded-deps.patch deleted file mode 100644 index a293080..0000000 --- a/at-spi-unneeded-deps.patch +++ /dev/null @@ -1,53 +0,0 @@ -diff -up at-spi-1.25.2/atk-bridge/Makefile.am.unneeded-deps at-spi-1.25.2/atk-bridge/Makefile.am ---- at-spi-1.25.2/atk-bridge/Makefile.am.unneeded-deps 2007-12-03 01:16:10.000000000 -0500 -+++ at-spi-1.25.2/atk-bridge/Makefile.am 2008-12-10 11:44:34.000000000 -0500 -@@ -33,4 +33,4 @@ libatk_bridge_la_LDFLAGS = \ - - libatk_bridge_la_LIBADD = \ - $(top_builddir)/libspi/libspi.la \ -- $(ATK_BRIDGE_LIBS) -+ $(ATK_BRIDGE_LIBS) $(X_LIBS) -diff -up at-spi-1.25.2/configure.in.unneeded-deps at-spi-1.25.2/configure.in ---- at-spi-1.25.2/configure.in.unneeded-deps 2008-12-01 01:52:24.000000000 -0500 -+++ at-spi-1.25.2/configure.in 2008-12-10 11:48:47.000000000 -0500 -@@ -77,7 +77,7 @@ AC_PATH_XTRA - if test x$no_x = xyes ; then - AC_MSG_ERROR([X development libraries not found]) - else -- X_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS" -+ X_LIBS="$X_LIBS -lX11" - fi - - AC_SUBST(X_LIBS) -@@ -144,7 +144,6 @@ LIBBONOBO_IDL_DIR="`$PKG_CONFIG --variab - AC_SUBST(BONOBO_ACTIVATION_IDL_DIR) - AC_SUBST(LIBBONOBO_IDL_DIR) - --LIBS="$LIBS $X_LIBS" - dnl path to Xtst - AC_CHECK_LIB(Xtst, XTestFakeKeyEvent, XTST_LIBS=-lXtst,[ - AC_MSG_ERROR([Couldn't find the Xtst library. Check config.log])], -diff -up at-spi-1.25.2/cspi/Makefile.am.unneeded-deps at-spi-1.25.2/cspi/Makefile.am ---- at-spi-1.25.2/cspi/Makefile.am.unneeded-deps 2007-06-05 03:16:57.000000000 -0400 -+++ at-spi-1.25.2/cspi/Makefile.am 2008-12-10 11:44:34.000000000 -0500 -@@ -14,7 +14,7 @@ libcspi_la_LDFLAGS = @LDFLAGS@ @LT_VERSI - - LDADD = \ - $(top_builddir)/libspi/libspi.la \ -- $(LIBCSPI_LIBS) $(X_LIBS) -+ $(LIBCSPI_LIBS) - - libcspidir = $(includedir)/at-spi-1.0/cspi - libcspi_HEADERS = \ -diff -up at-spi-1.25.2/libspi/Makefile.am.unneeded-deps at-spi-1.25.2/libspi/Makefile.am ---- at-spi-1.25.2/libspi/Makefile.am.unneeded-deps 2007-11-28 01:43:23.000000000 -0500 -+++ at-spi-1.25.2/libspi/Makefile.am 2008-12-10 11:44:34.000000000 -0500 -@@ -10,7 +10,7 @@ INCLUDES = -I$(top_srcdir) \ - $(X_CFLAGS) - - libspi_la_LDFLAGS = @LT_VERSION_INFO@ -no-undefined --libspi_la_LIBADD = $(LIBSPI_LIBS) $(XTST_LIBS) -+libspi_la_LIBADD = $(LIBSPI_LIBS) - - libspiincludedir = $(includedir)/at-spi-1.0/libspi - diff --git a/at-spi.spec b/at-spi.spec index 145c2e3..70a786b 100644 --- a/at-spi.spec +++ b/at-spi.spec @@ -9,10 +9,10 @@ Summary: Assistive Technology Service Provider Interface Name: at-spi -Version: 1.28.0 -Release: 2%{?dist} +Version: 1.29.3 +Release: 1%{?dist} URL: http://developer.gnome.org/projects/gap/ -Source0: http://download.gnome.org/sources/at-spi/1.28/%{name}-%{version}.tar.bz2 +Source0: http://download.gnome.org/sources/at-spi/1.29/%{name}-%{version}.tar.bz2 License: LGPLv2+ Group: System Environment/Libraries @@ -48,8 +48,6 @@ BuildRequires: automake, autoconf, libtool, intltool # http://bugzilla.gnome.org/show_bug.cgi?id=548782 Patch0: evo-crash.patch -# https://bugzilla.gnome.org/show_bug.cgi?id=578334 -Patch1: at-spi-fixed-sm.patch %description at-spi allows assistive technologies to access GTK-based @@ -87,7 +85,6 @@ This package contains Python bindings allowing to use at-spi in Python programs. %prep %setup -q %patch0 -p1 -b .evo-crash -%patch1 -p1 -b .fixed-sm autoreconf -i -f @@ -157,6 +154,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Fri Dec 4 2009 Matthias Clasen - 1.29.3-1 +- Update to 1.29.3 + * Sun Sep 27 2009 Matthias Clasen - 1.28.0-2 - Use dbus sm api instead of xsmp, avoid segfault at logout (#519239) diff --git a/liyuan-greeter-crash.patch b/liyuan-greeter-crash.patch deleted file mode 100644 index fb54296..0000000 --- a/liyuan-greeter-crash.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -up at-spi-1.23.91/atk-bridge/bridge.c.greeter-crash at-spi-1.23.91/atk-bridge/bridge.c ---- at-spi-1.23.91/atk-bridge/bridge.c.greeter-crash 2008-09-05 09:54:27.000000000 -0400 -+++ at-spi-1.23.91/atk-bridge/bridge.c 2008-09-05 12:38:34.000000000 -0400 -@@ -1101,7 +1101,7 @@ spi_atk_bridge_signal_listener (GSignalI - CORBA_any any; - CORBA_Object c_obj; - char *sp = NULL; -- AtkObject *ao; -+ AtkObject *ao = NULL; - gint detail1 = 0, detail2 = 0; - SpiAccessible *s_ao = NULL; - #ifdef SPI_BRIDGE_DEBUG -@@ -1162,7 +1162,7 @@ spi_atk_bridge_signal_listener (GSignalI - ao = ATK_OBJECT (child); - g_object_ref (ao); - } -- else -+ else if (detail != NULL && strcmp (detail, "add") == 0) - { - ao = atk_object_ref_accessible_child (ATK_OBJECT (gobject), - detail1); diff --git a/sources b/sources index 5afacf3..7c57c98 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -06f6da7873dffc8a26b04e304236e222 at-spi-1.28.0.tar.bz2 +bb3f199340ba559a1de8746f58676a11 at-spi-1.29.3.tar.bz2