Please do not reply directly to this email. All additional comments should be made in the comments box of this bug.
Summary: imsettings sometimes failed to run ibus
https://bugzilla.redhat.com/show_bug.cgi?id=629872
Summary: imsettings sometimes failed to run ibus Product: Fedora Version: 13 Platform: All OS/Version: Linux Status: NEW Severity: medium Priority: low Component: imsettings AssignedTo: tagoh@redhat.com ReportedBy: tfujiwar@redhat.com QAContact: extras-qa@fedoraproject.org CC: tagoh@redhat.com, i18n-bugs@lists.fedoraproject.org Classification: Fedora Target Release: ---
It seems imsettings sometimes failed to run ibus-daemon with timeout when I change the login languages (maybe user-dirs-update-gtk effects). Having a timeout option for imsettings-start might be good. The default timeout would be 2.5 sec.
The test case works good with me: --- imsettings-0.108.1/imsettings/imsettings-request.c.orig +++ imsettings-0.108.1/imsettings/imsettings-request.c @@ -29,6 +29,11 @@ #include <glib/gi18n-lib.h> #include <dbus/dbus-glib-lowlevel.h> #include <dbus/dbus-glib-bindings.h> + +#ifdef HAVE_LOCALE_H +#include <locale.h> +#endif + #include "imsettings-request.h" #include "imsettings.h" #include "imsettings-utils.h" @@ -236,10 +241,19 @@ imsettings_request_get_version(IMSetting g_return_val_if_fail (IMSETTINGS_IS_REQUEST (imsettings), 0);
priv = IMSETTINGS_REQUEST_GET_PRIVATE (imsettings); +#if 0 if (!dbus_g_proxy_call(priv->proxy, "GetVersion", &err, G_TYPE_INVALID, G_TYPE_UINT, &retval, G_TYPE_INVALID)) +#else + if (!dbus_g_proxy_call_with_timeout (priv->proxy, "GetVersion", + 60000, + &err, + G_TYPE_INVALID, + G_TYPE_UINT, &retval, + G_TYPE_INVALID)) +#endif g_warning(_("Failed to invoke a method `%s' on %s:\n %s"), "GetVersion", dbus_g_proxy_get_interface(priv->proxy), @@ -317,7 +331,11 @@ imsettings_request_get_info_object(IMSet IMSettingsInfo *retval = NULL; GValueArray *ret = NULL; GError *err = NULL; +#ifdef HAVE_LOCALE_H const gchar *locale = setlocale(LC_CTYPE, NULL); +#else + const gchar *locale = NULL; +#endif
g_return_val_if_fail (IMSETTINGS_IS_REQUEST (imsettings), NULL);