[Fedora-i18n-bugs] [ibus-m17n/f15] Update to 1.3.2-7; migrate to quilt.
by Daiki Ueno
commit f19c5d44cef4cba226ef82f128fa13cda3f9aead
Author: Daiki Ueno <ueno(a)unixuser.org>
Date: Thu Jul 7 16:58:24 2011 +0900
Update to 1.3.2-7; migrate to quilt.
ibus-m17n-HEAD.patch | 52 ++++--
ibus-m17n-iok.patch | 35 ++---
ibus-m17n-stscap.patch | 38 ----
ibus-m17n-stsreq.patch | 33 ----
ibus-m17n-xkb-options.patch | 386 ++++++++++++++++++++++++++++++++++++++++
ibus-m17n-xx-icon-symbol.patch | 130 ++++++++++++++
ibus-m17n.spec | 50 ++++--
series | 4 +
8 files changed, 604 insertions(+), 124 deletions(-)
---
diff --git a/ibus-m17n-HEAD.patch b/ibus-m17n-HEAD.patch
index 9b98dea..9c3f6bd 100644
--- a/ibus-m17n-HEAD.patch
+++ b/ibus-m17n-HEAD.patch
@@ -1,7 +1,8 @@
-diff --git a/Makefile.am b/Makefile.am
-index eac3b9d..14a674d 100644
---- a/Makefile.am
-+++ b/Makefile.am
+Patch to synch with the git master 65cc1bc1.
+Index: ibus-m17n-1.3.2/Makefile.am
+===================================================================
+--- ibus-m17n-1.3.2.orig/Makefile.am
++++ ibus-m17n-1.3.2/Makefile.am
@@ -69,7 +69,7 @@ debian/changelog:
version=@VERSION@; \
serie=$(serie); \
@@ -11,10 +12,10 @@ index eac3b9d..14a674d 100644
fi; \
if test -z "$$release"; then \
release=1; \
-diff --git a/configure.ac b/configure.ac
-index 17077f2..4df68b6 100644
---- a/configure.ac
-+++ b/configure.ac
+Index: ibus-m17n-1.3.2/configure.ac
+===================================================================
+--- ibus-m17n-1.3.2.orig/configure.ac
++++ ibus-m17n-1.3.2/configure.ac
@@ -89,7 +89,22 @@ fi
AM_CONDITIONAL([HAVE_GTK],[test x$with_gtk != xno])
@@ -38,10 +39,10 @@ index 17077f2..4df68b6 100644
# define GETTEXT_* variables
GETTEXT_PACKAGE=ibus-m17n
-diff --git a/src/engine.c b/src/engine.c
-index 62359c1..60816b0 100644
---- a/src/engine.c
-+++ b/src/engine.c
+Index: ibus-m17n-1.3.2/src/engine.c
+===================================================================
+--- ibus-m17n-1.3.2.orig/src/engine.c
++++ ibus-m17n-1.3.2/src/engine.c
@@ -1,4 +1,7 @@
/* vim:set et sts=4: */
+#ifdef HAVE_CONFIG_H
@@ -85,7 +86,7 @@ index 62359c1..60816b0 100644
static void ibus_m17n_config_value_changed (IBusConfig *config,
const gchar *section,
const gchar *name,
-@@ -119,7 +102,6 @@ static void ibus_m17n_engine_update_lookup_table
+@@ -119,7 +102,6 @@ static void ibus_m17n_engine_update_look
static IBusEngineClass *parent_class = NULL;
static IBusConfig *config = NULL;
@@ -149,7 +150,7 @@ index 62359c1..60816b0 100644
}
static gboolean
-@@ -239,14 +172,14 @@ ibus_m17n_engine_get_type_for_name (const gchar *engine_name)
+@@ -239,14 +172,14 @@ ibus_m17n_engine_get_type_for_name (cons
GTypeInfo type_info = {
sizeof (IBusM17NEngineClass),
@@ -169,7 +170,7 @@ index 62359c1..60816b0 100644
};
if (!ibus_m17n_scan_engine_name (engine_name, &lang, &name)) {
-@@ -264,11 +197,10 @@ ibus_m17n_engine_get_type_for_name (const gchar *engine_name)
+@@ -264,11 +197,10 @@ ibus_m17n_engine_get_type_for_name (cons
g_assert (type == 0 || g_type_is_a (type, IBUS_TYPE_ENGINE));
if (type == 0) {
@@ -185,7 +186,7 @@ index 62359c1..60816b0 100644
}
g_free (type_name);
-@@ -408,14 +340,6 @@ ibus_m17n_config_value_changed (IBusConfig *config,
+@@ -408,14 +340,6 @@ ibus_m17n_config_value_changed (IBusConf
}
static void
@@ -200,7 +201,24 @@ index 62359c1..60816b0 100644
ibus_m17n_engine_init (IBusM17NEngine *m17n)
{
IBusText* label;
-@@ -986,8 +910,57 @@ ibus_m17n_engine_callback (MInputContext *context,
+@@ -773,6 +697,16 @@ ibus_m17n_engine_enable (IBusEngine *eng
+ IBusM17NEngine *m17n = (IBusM17NEngine *) engine;
+
+ parent_class->enable (engine);
++
++#ifdef HAVE_IBUS_ENGINE_GET_SURROUNDING_TEXT
++ /* Issue a dummy ibus_engine_get_surrounding_text() call to tell
++ input context that we will use surrounding-text. */
++ IBusText *text;
++ guint cursor_pos;
++
++ ibus_engine_get_surrounding_text (engine, &text, &cursor_pos);
++ g_object_unref (text);
++#endif /* HAVE_IBUS_ENGINE_GET_SURROUNDING_TEXT */
+ }
+
+ static void
+@@ -986,8 +920,57 @@ ibus_m17n_engine_callback (MInputContext
}
else if (command == Minput_reset) {
}
diff --git a/ibus-m17n-iok.patch b/ibus-m17n-iok.patch
index df6ef43..e73124f 100644
--- a/ibus-m17n-iok.patch
+++ b/ibus-m17n-iok.patch
@@ -1,17 +1,9 @@
-From c27a0917c26624f1741efeebe20cd5cfb8647a67 Mon Sep 17 00:00:00 2001
-From: Daiki Ueno <ueno(a)unixuser.org>
-Date: Mon, 7 Mar 2011 14:57:32 +0900
-Subject: [PATCH] Apply iok patch from Fedora.
-
----
- src/engine.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
- 1 files changed, 46 insertions(+), 0 deletions(-)
-
-diff --git a/src/engine.c b/src/engine.c
-index 62359c1..362d347 100644
---- a/src/engine.c
-+++ b/src/engine.c
-@@ -37,6 +37,7 @@ struct _IBusM17NEngine {
+Patch to support iok (Indic Onscreen Keyboard).
+Index: ibus-m17n-1.3.2/src/engine.c
+===================================================================
+--- ibus-m17n-1.3.2.orig/src/engine.c
++++ ibus-m17n-1.3.2/src/engine.c
+@@ -23,6 +23,7 @@ struct _IBusM17NEngine {
IBusProperty *setup_prop;
#endif /* HAVE_SETUP */
IBusPropList *prop_list;
@@ -19,7 +11,7 @@ index 62359c1..362d347 100644
};
struct _IBusM17NEngineClass {
-@@ -48,6 +49,7 @@ struct _IBusM17NEngineClass {
+@@ -34,6 +35,7 @@ struct _IBusM17NEngineClass {
guint preedit_background;
gint preedit_underline;
gint lookup_table_orientation;
@@ -27,7 +19,7 @@ index 62359c1..362d347 100644
MInputMethod *im;
};
-@@ -316,6 +318,9 @@ ibus_m17n_engine_class_init (IBusM17NEngineClass *klass)
+@@ -248,6 +250,9 @@ ibus_m17n_engine_class_init (IBusM17NEng
}
engine_name = g_strdup_printf ("m17n:%s:%s", lang, name);
klass->config_section = g_strdup_printf ("engine/M17N/%s/%s", lang, name);
@@ -37,7 +29,7 @@ index 62359c1..362d347 100644
g_free (lang);
g_free (name);
-@@ -420,6 +425,7 @@ ibus_m17n_engine_init (IBusM17NEngine *m17n)
+@@ -344,6 +349,7 @@ ibus_m17n_engine_init (IBusM17NEngine *m
{
IBusText* label;
IBusText* tooltip;
@@ -45,7 +37,7 @@ index 62359c1..362d347 100644
m17n->prop_list = ibus_prop_list_new ();
g_object_ref_sink (m17n->prop_list);
-@@ -452,6 +458,23 @@ ibus_m17n_engine_init (IBusM17NEngine *m17n)
+@@ -376,6 +382,23 @@ ibus_m17n_engine_init (IBusM17NEngine *m
ibus_prop_list_append (m17n->prop_list, m17n->setup_prop);
#endif /* HAVE_SETUP */
@@ -69,7 +61,7 @@ index 62359c1..362d347 100644
m17n->table = ibus_lookup_table_new (9, 0, TRUE, TRUE);
g_object_ref_sink (m17n->table);
m17n->context = NULL;
-@@ -537,6 +560,11 @@ ibus_m17n_engine_destroy (IBusM17NEngine *m17n)
+@@ -461,6 +484,11 @@ ibus_m17n_engine_destroy (IBusM17NEngine
}
#endif /* HAVE_SETUP */
@@ -81,7 +73,7 @@ index 62359c1..362d347 100644
if (m17n->table) {
g_object_unref (m17n->table);
m17n->table = NULL;
-@@ -844,6 +872,24 @@ ibus_m17n_engine_property_activate (IBusEngine *engine,
+@@ -778,6 +806,24 @@ ibus_m17n_engine_property_activate (IBus
}
#endif /* HAVE_SETUP */
@@ -106,6 +98,3 @@ index 62359c1..362d347 100644
parent_class->property_activate (engine, prop_name, prop_state);
}
---
-1.7.4
-
diff --git a/ibus-m17n-xkb-options.patch b/ibus-m17n-xkb-options.patch
new file mode 100644
index 0000000..551f1c8
--- /dev/null
+++ b/ibus-m17n-xkb-options.patch
@@ -0,0 +1,386 @@
+Patch to set certain XKB options when an m17n IME is set.
+Index: ibus-m17n-1.3.2/configure.ac
+===================================================================
+--- ibus-m17n-1.3.2.orig/configure.ac
++++ ibus-m17n-1.3.2/configure.ac
+@@ -106,6 +106,14 @@ AC_CHECK_FUNCS([ibus_engine_get_surround
+ CFLAGS="$save_CFLAGS"
+ LIBS="$save_LIBS"
+
++# check libxklavier
++have_libxklavier=no
++PKG_CHECK_MODULES([LIBXKLAVIER], [libxklavier gdk-3.0 x11],
++ have_libxklavier=yes)
++if test x$have_libxklavier != xno; then
++ AC_DEFINE([HAVE_LIBXKLAVIER], [1], [Define if libxklavier is found])
++fi
++
+ # define GETTEXT_* variables
+ GETTEXT_PACKAGE=ibus-m17n
+ AC_SUBST(GETTEXT_PACKAGE)
+Index: ibus-m17n-1.3.2/src/Makefile.am
+===================================================================
+--- ibus-m17n-1.3.2.orig/src/Makefile.am
++++ ibus-m17n-1.3.2/src/Makefile.am
+@@ -66,10 +66,15 @@ ibus_engine_m17n_SOURCES = \
+ engine.c \
+ engine.h \
+ $(NULL)
++ibus_engine_m17n_CFLAGS = \
++ @LIBXKLAVIER_CFLAGS@ \
++ $(AM_CFLAGS) \
++ $(NULL)
+ ibus_engine_m17n_LDADD = \
+ libm17ncommon.a \
+ @IBUS_LIBS@ \
+ @M17N_LIBS@ \
++ @LIBXKLAVIER_LIBS@ \
+ $(NULL)
+
+ if HAVE_GTK
+Index: ibus-m17n-1.3.2/src/default.xml.in.in
+===================================================================
+--- ibus-m17n-1.3.2.orig/src/default.xml.in.in
++++ ibus-m17n-1.3.2/src/default.xml.in.in
+@@ -12,19 +12,22 @@
+ <preedit-highlight>FALSE</preedit-highlight>
+ </engine>
+ <engine>
+- <name>m17n:bn:inscript</name>
++ <name>m17n:bn:inscript*</name>
+ <rank>2</rank>
+ <preedit-highlight>FALSE</preedit-highlight>
++ <xkb-options>lv3:ralt_switch</xkb-options>
+ </engine>
+ <engine>
+- <name>m17n:gu:inscript</name>
++ <name>m17n:gu:inscript*</name>
+ <rank>2</rank>
+ <preedit-highlight>FALSE</preedit-highlight>
++ <xkb-options>lv3:ralt_switch</xkb-options>
+ </engine>
+ <engine>
+- <name>m17n:hi:inscript</name>
++ <name>m17n:hi:inscript*</name>
+ <rank>2</rank>
+ <preedit-highlight>FALSE</preedit-highlight>
++ <xkb-options>lv3:ralt_switch</xkb-options>
+ </engine>
+ <engine>
+ <name>m17n:kn:kgp</name>
+@@ -37,19 +40,22 @@
+ <preedit-highlight>FALSE</preedit-highlight>
+ </engine>
+ <engine>
+- <name>m17n:mai:inscript</name>
++ <name>m17n:mai:inscript*</name>
+ <rank>2</rank>
+ <preedit-highlight>FALSE</preedit-highlight>
++ <xkb-options>lv3:ralt_switch</xkb-options>
+ </engine>
+ <engine>
+- <name>m17n:ml:inscript</name>
++ <name>m17n:ml:inscript*</name>
+ <rank>2</rank>
+ <preedit-highlight>FALSE</preedit-highlight>
++ <xkb-options>lv3:ralt_switch</xkb-options>
+ </engine>
+ <engine>
+- <name>m17n:mr:inscript</name>
++ <name>m17n:mr:inscript*</name>
+ <rank>2</rank>
+ <preedit-highlight>FALSE</preedit-highlight>
++ <xkb-options>lv3:ralt_switch</xkb-options>
+ </engine>
+ <engine>
+ <name>m17n:ne:rom</name>
+@@ -57,14 +63,16 @@
+ <preedit-highlight>FALSE</preedit-highlight>
+ </engine>
+ <engine>
+- <name>m17n:or:inscript</name>
++ <name>m17n:or:inscript*</name>
+ <rank>2</rank>
+ <preedit-highlight>FALSE</preedit-highlight>
++ <xkb-options>lv3:ralt_switch</xkb-options>
+ </engine>
+ <engine>
+- <name>m17n:pa:inscript</name>
++ <name>m17n:pa:inscript*</name>
+ <rank>2</rank>
+ <preedit-highlight>FALSE</preedit-highlight>
++ <xkb-options>lv3:ralt_switch</xkb-options>
+ </engine>
+ <engine>
+ <name>m17n:sa:harvard-kyoto</name>
+@@ -72,14 +80,16 @@
+ <preedit-highlight>FALSE</preedit-highlight>
+ </engine>
+ <engine>
+- <name>m17n:sd:inscript</name>
++ <name>m17n:sd:inscript*</name>
+ <rank>2</rank>
+ <preedit-highlight>FALSE</preedit-highlight>
++ <xkb-options>lv3:ralt_switch</xkb-options>
+ </engine>
+ <engine>
+ <name>m17n:si:wijesekera</name>
+ <rank>2</rank>
+ <preedit-highlight>FALSE</preedit-highlight>
++ <xkb-options>lv3:ralt_switch</xkb-options>
+ </engine>
+ <engine>
+ <name>m17n:ta:tamil99</name>
+@@ -87,9 +97,10 @@
+ <preedit-highlight>FALSE</preedit-highlight>
+ </engine>
+ <engine>
+- <name>m17n:te:inscript</name>
++ <name>m17n:te:inscript*</name>
+ <rank>2</rank>
+ <preedit-highlight>FALSE</preedit-highlight>
++ <xkb-options>lv3:ralt_switch</xkb-options>
+ </engine>
+ <!-- Samanala should have lower rank than other Sinhala
+ engines since it is the only non-keyboard input method in
+@@ -226,6 +237,7 @@
+ <name>m17n:si:*</name>
+ <rank>1</rank>
+ <preedit-highlight>FALSE</preedit-highlight>
++ <xkb-options>lv3:ralt_switch</xkb-options>
+ </engine>
+ <engine>
+ <name>m17n:ta:*</name>
+Index: ibus-m17n-1.3.2/src/engine.c
+===================================================================
+--- ibus-m17n-1.3.2.orig/src/engine.c
++++ ibus-m17n-1.3.2/src/engine.c
+@@ -6,6 +6,10 @@
+ #include <ibus.h>
+ #include <m17n.h>
+ #include <string.h>
++#ifdef HAVE_LIBXKLAVIER
++#include <gdk/gdkx.h>
++#include <libxklavier/xklavier.h>
++#endif /* HAVE_LIBXKLAVIER */
+ #include "m17nutil.h"
+ #include "engine.h"
+
+@@ -38,6 +42,10 @@ struct _IBusM17NEngineClass {
+ gboolean use_iok;
+
+ MInputMethod *im;
++
++#if HAVE_LIBXKLAVIER
++ XklConfigRec *xkl_config_rec;
++#endif /* HAVE_LIBXKLAVIER */
+ };
+
+ /* functions prototype */
+@@ -105,12 +113,90 @@ static IBusEngineClass *parent_class = N
+
+ static IBusConfig *config = NULL;
+
++#if HAVE_LIBXKLAVIER
++static XklEngine *xkl_engine = NULL;
++static XklConfigRec *xkl_system_config_rec = NULL;
++
++static gboolean
++parse_xkb_options (XklConfigRec *config_rec, const gchar *xkb_options)
++{
++ gchar **strv;
++
++ strv = g_strsplit (xkb_options, ",", -1);
++ if (g_strv_length (strv) < 1) {
++ g_strfreev (strv);
++ return FALSE;
++ }
++
++ g_strfreev (config_rec->options);
++ config_rec->options = strv;
++
++ return TRUE;
++}
++
++static GdkFilterReturn
++filter_xkl_event (GdkXEvent *xev,
++ GdkEvent *event,
++ gpointer user_data)
++{
++ XEvent *xevent = (XEvent *)xev;
++
++ xkl_engine_filter_events (xkl_engine, xevent);
++ return GDK_FILTER_CONTINUE;
++}
++
++static void
++on_xkl_config_changed (XklEngine *xklengine,
++ gpointer user_data)
++{
++ IBusM17NEngineClass *klass = user_data;
++ XklConfigRec *config_rec;
++
++ config_rec = xkl_config_rec_new ();
++ if (!xkl_config_rec_get_from_server (config_rec, xkl_engine)) {
++ g_object_unref (config_rec);
++ g_warning ("Can't get default keyboard config from the server");
++ } else if (klass->xkl_config_rec &&
++ !xkl_config_rec_equals (config_rec, klass->xkl_config_rec)) {
++ if (xkl_system_config_rec)
++ g_object_unref (xkl_system_config_rec);
++ xkl_system_config_rec = config_rec;
++ }
++}
++#endif /* HAVE_LIBXKLAVIER */
++
+ void
+ ibus_m17n_init (IBusBus *bus)
+ {
++#if HAVE_LIBXKLAVIER
++ if (gdk_init_check (NULL, NULL)) {
++ GdkDisplay *display = gdk_display_get_default ();
++ g_assert (display);
++
++ xkl_engine = xkl_engine_get_instance (GDK_DISPLAY_XDISPLAY (display));
++ xkl_system_config_rec = xkl_config_rec_new ();
++ if (!xkl_config_rec_get_from_server (xkl_system_config_rec,
++ xkl_engine)) {
++ g_object_unref (xkl_system_config_rec);
++ xkl_system_config_rec = NULL;
++
++ g_warning ("Can't get default keyboard config from the server");
++ } else {
++ gdk_window_add_filter (NULL,
++ (GdkFilterFunc) filter_xkl_event,
++ NULL);
++ gdk_window_add_filter (gdk_get_default_root_window (),
++ (GdkFilterFunc) filter_xkl_event,
++ NULL);
++ xkl_engine_start_listen (xkl_engine, XKLL_TRACK_KEYBOARD_STATE);
++ }
++ }
++#endif /* HAVE_LIBXKLAVIER */
++
+ config = ibus_bus_get_config (bus);
+ if (config)
+ g_object_ref_sink (config);
++
+ ibus_m17n_init_common ();
+ }
+
+@@ -299,6 +385,25 @@ ibus_m17n_engine_class_init (IBusM17NEng
+ G_CALLBACK(ibus_m17n_config_value_changed),
+ klass);
+
++#if HAVE_LIBXKLAVIER
++ if (engine_config->xkb_options) {
++ klass->xkl_config_rec = xkl_config_rec_new ();
++ if (!xkl_config_rec_get_from_server (klass->xkl_config_rec,
++ xkl_engine)) {
++ g_object_unref (klass->xkl_config_rec);
++ g_warning ("Can't get default keyboard config from the server");
++ } else if (!parse_xkb_options (klass->xkl_config_rec,
++ engine_config->xkb_options)) {
++ g_object_unref (klass->xkl_config_rec);
++ g_warning ("Can't parse xkb options %s",
++ engine_config->xkb_options);
++ }
++ }
++
++ g_signal_connect (xkl_engine, "X-config-changed",
++ G_CALLBACK(on_xkl_config_changed), klass);
++#endif /* HAVE_LIBXKLAVIER */
++
+ klass->im = NULL;
+ }
+
+@@ -412,6 +517,9 @@ ibus_m17n_engine_constructor (GType
+ IBusM17NEngine *m17n;
+ GObjectClass *object_class;
+ IBusM17NEngineClass *klass;
++#if HAVE_LIBXKLAVIER
++ GdkDisplay *display;
++#endif /* HAVE_LIBXKLAVIER */
+
+ m17n = (IBusM17NEngine *) G_OBJECT_CLASS (parent_class)->constructor (type,
+ n_construct_params,
+@@ -499,6 +607,11 @@ ibus_m17n_engine_destroy (IBusM17NEngine
+ m17n->context = NULL;
+ }
+
++#if HAVE_LIBXKLAVIER
++ if (xkl_system_config_rec)
++ xkl_config_rec_activate (xkl_system_config_rec, xkl_engine);
++#endif /* HAVE_LIBXKLAVIER */
++
+ IBUS_OBJECT_CLASS (parent_class)->destroy ((IBusObject *)m17n);
+ }
+
+@@ -735,6 +848,19 @@ ibus_m17n_engine_enable (IBusEngine *eng
+ ibus_engine_get_surrounding_text (engine, &text, &cursor_pos);
+ g_object_unref (text);
+ #endif /* HAVE_IBUS_ENGINE_GET_SURROUNDING_TEXT */
++
++#if HAVE_LIBXKLAVIER
++ GObjectClass *object_class;
++ IBusM17NEngineClass *klass;
++
++ object_class = G_OBJECT_GET_CLASS (m17n);
++ klass = (IBusM17NEngineClass *) object_class;
++
++ if (klass->xkl_config_rec) {
++ if (!xkl_config_rec_activate (klass->xkl_config_rec, xkl_engine))
++ g_warning ("Can't set the XKB layout");
++ }
++#endif /* HAVE_LIBXKLAVIER */
+ }
+
+ static void
+@@ -744,6 +870,17 @@ ibus_m17n_engine_disable (IBusEngine *en
+
+ ibus_m17n_engine_focus_out (engine);
+ parent_class->disable (engine);
++
++#if HAVE_LIBXKLAVIER
++ GObjectClass *object_class;
++ IBusM17NEngineClass *klass;
++
++ object_class = G_OBJECT_GET_CLASS (m17n);
++ klass = (IBusM17NEngineClass *) object_class;
++
++ if (xkl_system_config_rec)
++ xkl_config_rec_activate (xkl_system_config_rec, xkl_engine);
++#endif /* HAVE_LIBXKLAVIER */
+ }
+
+ static void
+Index: ibus-m17n-1.3.2/src/m17nutil.c
+===================================================================
+--- ibus-m17n-1.3.2.orig/src/m17nutil.c
++++ ibus-m17n-1.3.2/src/m17nutil.c
+@@ -290,6 +290,11 @@ ibus_m17n_engine_config_parse_xml_node (
+ sub_node->name, sub_node->text);
+ continue;
+ }
++ if (g_strcmp0 (sub_node->name, "xkb-options") == 0) {
++ g_free (cnode->config.xkb_options);
++ cnode->config.xkb_options = g_strdup (sub_node->text);
++ continue;
++ }
+ g_warning ("<engine> element contains invalid element <%s>",
+ sub_node->name);
+ }
+Index: ibus-m17n-1.3.2/src/m17nutil.h
+===================================================================
+--- ibus-m17n-1.3.2.orig/src/m17nutil.h
++++ ibus-m17n-1.3.2/src/m17nutil.h
+@@ -16,6 +16,9 @@ struct _IBusM17NEngineConfig {
+
+ /* whether to highlight preedit */
+ gboolean preedit_highlight;
++
++ /* keyboard options to which the engine switches when enabled */
++ char *xkb_options;
+ };
+
+ typedef struct _IBusM17NEngineConfig IBusM17NEngineConfig;
diff --git a/ibus-m17n-xx-icon-symbol.patch b/ibus-m17n-xx-icon-symbol.patch
new file mode 100644
index 0000000..43dac05
--- /dev/null
+++ b/ibus-m17n-xx-icon-symbol.patch
@@ -0,0 +1,130 @@
+Patch to embed hotkeys and symbol property in component XML.
+Index: ibus-m17n-1.3.2/configure.ac
+===================================================================
+--- ibus-m17n-1.3.2.orig/configure.ac
++++ ibus-m17n-1.3.2/configure.ac
+@@ -122,6 +122,10 @@ AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GET
+ AM_GNU_GETTEXT([external])
+ AM_GNU_GETTEXT_VERSION(0.16.1)
+
++# hotkeys in component xml
++IBUS_WITH_HOTKEYS
++IBUS_SET_SYMBOL([?])
++
+
+ # OUTPUT files
+ AC_CONFIG_FILES([ po/Makefile.in
+Index: ibus-m17n-1.3.2/m4/ibus.m4
+===================================================================
+--- /dev/null
++++ ibus-m17n-1.3.2/m4/ibus.m4
+@@ -0,0 +1,52 @@
++# IBUS_WITH_HOTKEYS([DEFAULT])
++AC_DEFUN([IBUS_WITH_HOTKEYS], [
++ IBUS_HOTKEYS_DEFAULT=m4_default([$1], [Control+space,Zenkaku_Hankaku])
++ AC_ARG_WITH(hotkeys,
++ [AC_HELP_STRING([--with-hotkeys=HOTKEYS],
++ [Use hotkeys for ibus bridge mode. (available value: yes/no/keys)])],
++ [with_hotkeys="$withval"],
++ [with_hotkeys="no"])
++ if test x$with_hotkeys = xno; then
++ IBUS_HOTKEYS_XML="<!-- <hotkeys>${IBUS_HOTKEYS_DEFAULT}</hotkeys> -->"
++ elif test x$with_hotkeys = xyes -o x$with_hotkeys = x; then
++ IBUS_HOTKEYS="$IBUS_HOTKEYS_DEFAULT"
++ IBUS_HOTKEYS_XML="<hotkeys>${IBUS_HOTKEYS}</hotkeys>"
++ else
++ IBUS_HOTKEYS="$with_hotkeys"
++ IBUS_HOTKEYS_XML="<hotkeys>${IBUS_HOTKEYS}</hotkeys>"
++ fi
++ if test x$IBUS_HOTKEYS != x; then
++ AC_DEFINE_UNQUOTED(IBUS_IBUS_HOTKEYS, ["$IBUS_HOTKEYS"],
++ [IME specific hotkeys for IBus])
++ AC_SUBST(IBUS_HOTKEYS)
++ fi
++ AC_SUBST(IBUS_HOTKEYS_XML)
++])
++
++# IBUS_SET_SYMBOL(SYMBOL)
++AC_DEFUN([IBUS_SET_SYMBOL], [
++ IBUS_SYMBOL="$1"
++ if test x$PYTHON = x; then
++ AM_PATH_PYTHON([2.5])
++ fi
++ AC_MSG_CHECKING([if ibus supports icon symbol])
++ $PYTHON <<_IBUS_SYMBOL_TEST
++import ibus
++engine = ibus.EngineDesc('test')
++exit(not hasattr(engine, 'symbol'))
++_IBUS_SYMBOL_TEST
++ if test $? -eq 0; then
++ IBUS_SYMBOL_XML="<symbol>${IBUS_SYMBOL}</symbol>"
++ AC_MSG_RESULT([yes])
++ else
++ IBUS_SYMBOL_XML="<!-- <symbol>${IBUS_SYMBOL}</symbol> -->"
++ IBUS_SYMBOL=
++ AC_MSG_RESULT([no])
++ fi
++ if test x$IBUS_SYMBOL != x; then
++ AC_DEFINE_UNQUOTED([IBUS_SYMBOL], ["$IBUS_SYMBOL"],
++ [Icon symbol string for IBus])
++ AC_SUBST(IBUS_SYMBOL)
++ fi
++ AC_SUBST(IBUS_SYMBOL_XML)
++])
+Index: ibus-m17n-1.3.2/src/default.xml.in.in
+===================================================================
+--- ibus-m17n-1.3.2.orig/src/default.xml.in.in
++++ ibus-m17n-1.3.2/src/default.xml.in.in
+@@ -254,5 +254,7 @@
+ <name>m17n:*</name>
+ <rank>0</rank>
+ <preedit-highlight>FALSE</preedit-highlight>
++ @IBUS_HOTKEYS_XML@
++ @IBUS_SYMBOL_XML@
+ </engine>
+ </engines>
+Index: ibus-m17n-1.3.2/src/m17nutil.c
+===================================================================
+--- ibus-m17n-1.3.2.orig/src/m17nutil.c
++++ ibus-m17n-1.3.2/src/m17nutil.c
+@@ -122,6 +122,8 @@ ibus_m17n_engine_new (MSymbol lang,
+ "icon", engine_icon ? engine_icon : "",
+ "layout", "us",
+ "rank", config->rank,
++ "hotkeys", config->hotkeys ? config->hotkeys : "",
++ "symbol", config->symbol ? config->symbol : "",
+ NULL);
+ #else
+ engine = ibus_engine_desc_new (engine_name,
+@@ -282,6 +284,14 @@ ibus_m17n_engine_config_parse_xml_node (
+ cnode->config.rank = atoi (sub_node->text);
+ continue;
+ }
++ if (g_strcmp0 (sub_node->name , "hotkeys") == 0) {
++ cnode->config.hotkeys = g_strdup (sub_node->text);
++ continue;
++ }
++ if (g_strcmp0 (sub_node->name , "symbol") == 0) {
++ cnode->config.symbol = g_strdup (sub_node->text);
++ continue;
++ }
+ if (g_strcmp0 (sub_node->name , "preedit-highlight") == 0) {
+ if (g_ascii_strcasecmp ("TRUE", sub_node->text) == 0)
+ cnode->config.preedit_highlight = TRUE;
+Index: ibus-m17n-1.3.2/src/m17nutil.h
+===================================================================
+--- ibus-m17n-1.3.2.orig/src/m17nutil.h
++++ ibus-m17n-1.3.2/src/m17nutil.h
+@@ -14,6 +14,12 @@ struct _IBusM17NEngineConfig {
+ /* engine rank */
+ gint rank;
+
++ /* hotkeys */
++ gchar *hotkeys;
++
++ /* symbol */
++ gchar *symbol;
++
+ /* whether to highlight preedit */
+ gboolean preedit_highlight;
+
diff --git a/ibus-m17n.spec b/ibus-m17n.spec
index 89ed649..aa1103c 100644
--- a/ibus-m17n.spec
+++ b/ibus-m17n.spec
@@ -1,20 +1,31 @@
-%define require_ibus_version 1.3.0
+%global require_ibus_version 1.3.0
+%global have_bridge_hotkey 0
+
+%if (0%{?fedora} > 14)
+%global _with_gtk --with-gtk=3.0
+%else
+%global _with_gtk --with-gtk=2.0
+%endif
+
+%if %have_bridge_hotkey
+%global _with_hotkeys --with-hotkeys
+%endif
Name: ibus-m17n
Version: 1.3.2
-Release: 5%{?dist}
+Release: 7%{?dist}
Summary: The M17N engine for IBus platform
License: GPLv2+
Group: System Environment/Libraries
URL: http://code.google.com/p/ibus/
Source0: http://ibus.googlecode.com/files/%{name}-%{version}.tar.gz
+# dummy source to keep quilt series file
+Source1: series
-Patch0: ibus-m17n-iok.patch
-Patch1: ibus-m17n-HEAD.patch
-# Surrounding-text support fixes. Hopefully Patch2 won't be needed
-# with future IBus versions.
-Patch2: ibus-m17n-stscap.patch
-Patch3: ibus-m17n-stsreq.patch
+Patch0: ibus-m17n-HEAD.patch
+Patch1: ibus-m17n-iok.patch
+Patch2: ibus-m17n-xkb-options.patch
+Patch3: ibus-m17n-xx-icon-symbol.patch
# The following BR is for autogen and not necessary when packging
# released tarballs.
@@ -23,7 +34,12 @@ BuildRequires: libtool
BuildRequires: pkgconfig
BuildRequires: gnome-common
BuildRequires: m17n-lib-devel
+%if (0%{?fedora} > 14)
BuildRequires: gtk3-devel
+%else
+BuildRequires: gtk2-devel
+%endif
+BuildRequires: libxklavier-devel
BuildRequires: ibus-devel >= %{require_ibus_version}
Requires: ibus >= %{require_ibus_version}
@@ -36,14 +52,14 @@ the input table maps from m17n-db.
%prep
%setup -q
-%patch0 -p1 -b .iok
-%patch1 -p1 -b .HEAD
-%patch2 -p1 -b .stscap
-%patch3 -p1 -b .stsreq
+%patch0 -p1 -b .HEAD
+%patch1 -p1 -b .iok
+%patch2 -p1 -b .xkb-options
+%patch3 -p1 -b .xx-icon-symbol
NOCONFIGURE=1 ./autogen.sh
%build
-%configure --disable-static --with-gtk=3.0
+%configure --disable-static %{?_with_gtk} %{?_with_hotkeys}
# make -C po update-gmo
make %{?_smp_mflags}
@@ -61,6 +77,14 @@ make DESTDIR=${RPM_BUILD_ROOT} install
%{_datadir}/ibus/component/*
%changelog
+* Thu Jul 7 2011 Daiki Ueno <dueno(a)redhat.com> - 1.3.2-7
+- don't specify --with-hotkey.
+
+* Mon Jul 4 2011 Daiki Ueno <dueno(a)redhat.com> - 1.3.2-6
+- Add ibus-m17n-xkb-options.patch.
+- Add ibus-m17n-xx-icon-symbol.patch.
+- Drop surrounding-text patches since they are included in the HEAD patch.
+
* Wed Jun 15 2011 Daiki Ueno <dueno(a)redhat.com> - 1.3.2-5
- Add ibus-m17n-stsreq.patch.
- Fix bug 711126 - ibus: surrounding text support fails for the first
diff --git a/series b/series
new file mode 100644
index 0000000..d44fc01
--- /dev/null
+++ b/series
@@ -0,0 +1,4 @@
+ibus-m17n-HEAD.patch
+ibus-m17n-iok.patch
+ibus-m17n-xkb-options.patch
+ibus-m17n-xx-icon-symbol.patch
12 years, 9 months
[Fedora-i18n-bugs] [ibus-hangul/f15] Update to 1.3.1-5.
by Daiki Ueno
commit 39f8b21ce77dc18a0f4ad192418498fbf956ee12
Author: Daiki Ueno <ueno(a)unixuser.org>
Date: Thu Jul 7 16:47:52 2011 +0900
Update to 1.3.1-5.
ibus-hangul-ibus-1.4.patch | 29 +++--------
ibus-hangul-xx-icon-symbol.patch | 97 ++++++++++++++++----------------------
ibus-hangul.spec | 27 ++++++-----
series | 2 +
4 files changed, 65 insertions(+), 90 deletions(-)
---
diff --git a/ibus-hangul-ibus-1.4.patch b/ibus-hangul-ibus-1.4.patch
index 25a6f12..3005672 100644
--- a/ibus-hangul-ibus-1.4.patch
+++ b/ibus-hangul-ibus-1.4.patch
@@ -1,19 +1,9 @@
-From 6ce58d1d79e5b175865ee26794e9fc7ce576ce56 Mon Sep 17 00:00:00 2001
-From: Daiki Ueno <ueno(a)unixuser.org>
-Date: Mon, 8 Nov 2010 14:12:35 +0900
-Subject: [PATCH] Fix build with ibus-1.4.
-
-This patch adds compatibility code for the API changes of IBusConfig and
-IBusEngineDesc in ibus-1.3 -> ibus-1.4.
----
- src/engine.c | 75 ++++++++++++++++++++++++++++++++++++++++++++++++---------
- 1 files changed, 63 insertions(+), 12 deletions(-)
-
-diff --git a/src/engine.c b/src/engine.c
-index 79db70f..a297e4d 100644
---- a/src/engine.c
-+++ b/src/engine.c
-@@ -111,7 +111,11 @@ static void ibus_hangul_engine_update_lookup_table
+Patch to follow ibus 1.4 config API change.
+Index: ibus-hangul-1.3.1/src/engine.c
+===================================================================
+--- ibus-hangul-1.3.1.orig/src/engine.c
++++ ibus-hangul-1.3.1/src/engine.c
+@@ -111,7 +111,11 @@ static void ibus_hangul_engine_update_lo
static void ibus_config_value_changed (IBusConfig *config,
const gchar *section,
const gchar *name,
@@ -25,7 +15,7 @@ index 79db70f..a297e4d 100644
gpointer user_data);
static void lookup_table_set_visible (IBusLookupTable *table,
-@@ -136,6 +140,11 @@ static gboolean hanja_key_list_match (HanjaKeyList *list,
+@@ -136,6 +140,11 @@ static gboolean hanja_key_list_match
static gboolean hanja_key_list_has_modifier (HanjaKeyList *list,
guint keyval);
@@ -75,7 +65,7 @@ index 79db70f..a297e4d 100644
} else {
hanja_key_list_append(&hanja_keys, IBUS_Hangul_Hanja, 0);
hanja_key_list_append(&hanja_keys, IBUS_F9, 0);
-@@ -963,27 +970,71 @@ ibus_hangul_engine_property_activate (IBusEngine *engine,
+@@ -963,27 +970,71 @@ ibus_hangul_engine_property_activate (IB
}
}
@@ -150,6 +140,3 @@ index 79db70f..a297e4d 100644
}
}
}
---
-1.7.5.1
-
diff --git a/ibus-hangul-xx-icon-symbol.patch b/ibus-hangul-xx-icon-symbol.patch
index 974e50f..e9fd789 100644
--- a/ibus-hangul-xx-icon-symbol.patch
+++ b/ibus-hangul-xx-icon-symbol.patch
@@ -1,101 +1,86 @@
-From e0463ae479a2d40b8f036ac81133585d2edd6e89 Mon Sep 17 00:00:00 2001
-From: Daiki Ueno <ueno(a)unixuser.org>
-Date: Mon, 4 Jul 2011 18:42:43 +0900
-Subject: [PATCH] Supply hotkeys and icon_symbol in engine desc.
-
----
- configure.ac | 4 +++
- m4/.gitignore | 1 +
- m4/ibus.m4 | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++
- src/hangul.xml.in.in | 2 +
- 4 files changed, 58 insertions(+), 0 deletions(-)
- create mode 100644 m4/ibus.m4
-
-diff --git a/configure.ac b/configure.ac
-index 043e150..edf19d8 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -75,6 +75,10 @@ AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Define to the read-only
+Patch to embed hotkeys and symbol property in component XML.
+Index: ibus-hangul-1.3.1/configure.ac
+===================================================================
+--- ibus-hangul-1.3.1.orig/configure.ac
++++ ibus-hangul-1.3.1/configure.ac
+@@ -75,6 +75,10 @@ AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GET
AM_GNU_GETTEXT([external])
AM_GNU_GETTEXT_VERSION([0.17])
-+# hotkeys and icon-symbol properties in component xml
++# hotkeys and symbol properties in component xml
+IBUS_WITH_HOTKEYS([Control+space,Hangul])
-+IBUS_ICON_SYMBOL([&xD55C;])
++IBUS_SET_SYMBOL([&xD55C;])
+
# OUTPUT files
AC_CONFIG_FILES([ po/Makefile.in
-diff --git a/m4/ibus.m4 b/m4/ibus.m4
-new file mode 100644
-index 0000000..b92d000
+Index: ibus-hangul-1.3.1/m4/ibus.m4
+===================================================================
--- /dev/null
-+++ b/m4/ibus.m4
-@@ -0,0 +1,51 @@
++++ ibus-hangul-1.3.1/m4/ibus.m4
+@@ -0,0 +1,52 @@
+# IBUS_WITH_HOTKEYS([DEFAULT])
+AC_DEFUN([IBUS_WITH_HOTKEYS], [
-+ HOTKEYS_DEFAULT=m4_default([$1], [Control+space,Zenkaku_Hankaku])
++ IBUS_HOTKEYS_DEFAULT=m4_default([$1], [Control+space,Zenkaku_Hankaku])
+ AC_ARG_WITH(hotkeys,
+ [AC_HELP_STRING([--with-hotkeys=HOTKEYS],
+ [Use hotkeys for ibus bridge mode. (available value: yes/no/keys)])],
+ [with_hotkeys="$withval"],
+ [with_hotkeys="no"])
+ if test x$with_hotkeys = xno; then
-+ HOTKEYS_XML="<!-- <hotkeys>${HOTKEYS_DEFAULT}</hotkeys> -->"
++ IBUS_HOTKEYS_XML="<!-- <hotkeys>${IBUS_HOTKEYS_DEFAULT}</hotkeys> -->"
+ elif test x$with_hotkeys = xyes -o x$with_hotkeys = x; then
-+ HOTKEYS="$HOTKEYS_DEFAULT"
-+ HOTKEYS_XML="<hotkeys>${HOTKEYS}</hotkeys>"
++ IBUS_HOTKEYS="$IBUS_HOTKEYS_DEFAULT"
++ IBUS_HOTKEYS_XML="<hotkeys>${IBUS_HOTKEYS}</hotkeys>"
+ else
-+ HOTKEYS="$with_hotkeys"
-+ HOTKEYS_XML="<hotkeys>${HOTKEYS}</hotkeys>"
++ IBUS_HOTKEYS="$with_hotkeys"
++ IBUS_HOTKEYS_XML="<hotkeys>${IBUS_HOTKEYS}</hotkeys>"
+ fi
-+ if test x$HOTKEYS != x; then
-+ AC_DEFINE_UNQUOTED(IBUS_HOTKEYS, ["$HOTKEYS"],
++ if test x$IBUS_HOTKEYS != x; then
++ AC_DEFINE_UNQUOTED(IBUS_IBUS_HOTKEYS, ["$IBUS_HOTKEYS"],
+ [IME specific hotkeys for IBus])
-+ AC_SUBST(HOTKEYS)
++ AC_SUBST(IBUS_HOTKEYS)
+ fi
-+ AC_SUBST(HOTKEYS_XML)
++ AC_SUBST(IBUS_HOTKEYS_XML)
+])
+
-+# IBUS_ICON_SYMBOL(SYMBOL)
-+AC_DEFUN([IBUS_ICON_SYMBOL], [
-+ ICON_SYMBOL="$1"
++# IBUS_SET_SYMBOL(SYMBOL)
++AC_DEFUN([IBUS_SET_SYMBOL], [
++ IBUS_SYMBOL="$1"
+ if test x$PYTHON = x; then
+ AM_PATH_PYTHON([2.5])
+ fi
+ AC_MSG_CHECKING([if ibus supports icon symbol])
-+ $PYTHON <<_ICON_SYMBOL_TEST
++ $PYTHON <<_IBUS_SYMBOL_TEST
+import ibus
+engine = ibus.EngineDesc('test')
-+exit(not hasattr(engine, 'icon_symbol'))
-+_ICON_SYMBOL_TEST
++exit(not hasattr(engine, 'symbol'))
++_IBUS_SYMBOL_TEST
+ if test $? -eq 0; then
-+ ICON_SYMBOL_XML="<icon_symbol>${icon_symbol}</icon_symbol>"
++ IBUS_SYMBOL_XML="<symbol>${IBUS_SYMBOL}</symbol>"
+ AC_MSG_RESULT([yes])
+ else
-+ ICON_SYMBOL_XML="<!-- <icon_symbol>${icon_symbol}</icon_symbol> -->"
-+ ICON_SYMBOL=
++ IBUS_SYMBOL_XML="<!-- <symbol>${IBUS_SYMBOL}</symbol> -->"
++ IBUS_SYMBOL=
+ AC_MSG_RESULT([no])
+ fi
-+ if test x$ICON_SYMBOL != x; then
-+ AC_DEFINE_UNQUOTED([IBUS[]_ICON_SYMBOL], ["$ICON_SYMBOL"],
++ if test x$IBUS_SYMBOL != x; then
++ AC_DEFINE_UNQUOTED([IBUS_SYMBOL], ["$IBUS_SYMBOL"],
+ [Icon symbol string for IBus])
++ AC_SUBST(IBUS_SYMBOL)
+ fi
-+ AC_SUBST(ICON_SYMBOL_XML)
++ AC_SUBST(IBUS_SYMBOL_XML)
+])
-diff --git a/src/hangul.xml.in.in b/src/hangul.xml.in.in
-index a87df59..00ba331 100644
---- a/src/hangul.xml.in.in
-+++ b/src/hangul.xml.in.in
+Index: ibus-hangul-1.3.1/src/hangul.xml.in.in
+===================================================================
+--- ibus-hangul-1.3.1.orig/src/hangul.xml.in.in
++++ ibus-hangul-1.3.1/src/hangul.xml.in.in
@@ -21,6 +21,8 @@
<longname>Korean</longname>
<description>Korean Input Method</description>
<rank>99</rank>
-+ @HOTKEYS_XML@
-+ @ICON_SYMBOL_XML@
++ @IBUS_HOTKEYS_XML@
++ @IBUS_SYMBOL_XML@
</engine>
</engines>
---
-1.7.6
-
diff --git a/ibus-hangul.spec b/ibus-hangul.spec
index 69d9766..48a696a 100644
--- a/ibus-hangul.spec
+++ b/ibus-hangul.spec
@@ -1,19 +1,23 @@
-%define require_ibus_version 1.2.99
-%define require_libhangul_version 0.0.10
-%define have_bridge_hotkey 1
+%global require_ibus_version 1.2.99
+%global require_libhangul_version 0.0.10
+%global have_bridge_hotkey 0
+
+%if %have_bridge_hotkey
+%global _with_hotkeys --with-hotkeys
+%endif
Name: ibus-hangul
Version: 1.3.1
-Release: 4%{?dist}
+Release: 5%{?dist}
Summary: The Hangul engine for IBus input platform
License: GPLv2+
Group: System Environment/Libraries
URL: http://code.google.com/p/ibus/
Source0: http://ibus.googlecode.com/files/%{name}-%{version}.tar.gz
+# dummy source to keep quilt series file
+Source1: series
Patch0: ibus-hangul-ibus-1.4.patch
-%if %have_bridge_hotkey
Patch1: ibus-hangul-xx-icon-symbol.patch
-%endif
BuildRequires: gettext-devel
BuildRequires: intltool
@@ -35,17 +39,11 @@ libhangul.
%prep
%setup -q
%patch0 -p1 -b .ibus-1.4
-%if %have_bridge_hotkey
%patch1 -p1 -b .icon-symbol
-%endif
%build
-%if %have_bridge_hotkey
autoreconf
-%configure --disable-static --with-hotkeys
-%else
-%configure --disable-static
-%endif
+%configure --disable-static %{?_with_hotkeys}
# make -C po update-gmo
make %{?_smp_mflags}
@@ -63,6 +61,9 @@ make DESTDIR=${RPM_BUILD_ROOT} install
%{_datadir}/ibus/component/*
%changelog
+* Thu Jul 7 2011 Daiki Ueno <dueno(a)redhat.com> - 1.3.1-5
+- don't specify --with-hotkeys.
+
* Mon Jul 4 2011 Daiki Ueno <dueno(a)redhat.com> - 1.3.1-4
- Added ibus-hangul-xx-icon-symbol.patch to enable the engine symbol & hotkeys.
diff --git a/series b/series
new file mode 100644
index 0000000..42726e1
--- /dev/null
+++ b/series
@@ -0,0 +1,2 @@
+ibus-hangul-ibus-1.4.patch
+ibus-hangul-xx-icon-symbol.patch
12 years, 9 months
[Fedora-i18n-bugs] [ibus-hangul] Update to 1.3.1-5; migrate to quilt.
by Daiki Ueno
commit 571f9c094e2ac592d286d8f520307d5175824875
Author: Daiki Ueno <ueno(a)unixuser.org>
Date: Thu Jul 7 16:28:52 2011 +0900
Update to 1.3.1-5; migrate to quilt.
ibus-hangul-ibus-1.4.patch | 29 +++--------
ibus-hangul-xx-icon-symbol.patch | 97 ++++++++++++++++----------------------
ibus-hangul.spec | 27 ++++++-----
series | 2 +
4 files changed, 65 insertions(+), 90 deletions(-)
---
diff --git a/ibus-hangul-ibus-1.4.patch b/ibus-hangul-ibus-1.4.patch
index 25a6f12..3005672 100644
--- a/ibus-hangul-ibus-1.4.patch
+++ b/ibus-hangul-ibus-1.4.patch
@@ -1,19 +1,9 @@
-From 6ce58d1d79e5b175865ee26794e9fc7ce576ce56 Mon Sep 17 00:00:00 2001
-From: Daiki Ueno <ueno(a)unixuser.org>
-Date: Mon, 8 Nov 2010 14:12:35 +0900
-Subject: [PATCH] Fix build with ibus-1.4.
-
-This patch adds compatibility code for the API changes of IBusConfig and
-IBusEngineDesc in ibus-1.3 -> ibus-1.4.
----
- src/engine.c | 75 ++++++++++++++++++++++++++++++++++++++++++++++++---------
- 1 files changed, 63 insertions(+), 12 deletions(-)
-
-diff --git a/src/engine.c b/src/engine.c
-index 79db70f..a297e4d 100644
---- a/src/engine.c
-+++ b/src/engine.c
-@@ -111,7 +111,11 @@ static void ibus_hangul_engine_update_lookup_table
+Patch to follow ibus 1.4 config API change.
+Index: ibus-hangul-1.3.1/src/engine.c
+===================================================================
+--- ibus-hangul-1.3.1.orig/src/engine.c
++++ ibus-hangul-1.3.1/src/engine.c
+@@ -111,7 +111,11 @@ static void ibus_hangul_engine_update_lo
static void ibus_config_value_changed (IBusConfig *config,
const gchar *section,
const gchar *name,
@@ -25,7 +15,7 @@ index 79db70f..a297e4d 100644
gpointer user_data);
static void lookup_table_set_visible (IBusLookupTable *table,
-@@ -136,6 +140,11 @@ static gboolean hanja_key_list_match (HanjaKeyList *list,
+@@ -136,6 +140,11 @@ static gboolean hanja_key_list_match
static gboolean hanja_key_list_has_modifier (HanjaKeyList *list,
guint keyval);
@@ -75,7 +65,7 @@ index 79db70f..a297e4d 100644
} else {
hanja_key_list_append(&hanja_keys, IBUS_Hangul_Hanja, 0);
hanja_key_list_append(&hanja_keys, IBUS_F9, 0);
-@@ -963,27 +970,71 @@ ibus_hangul_engine_property_activate (IBusEngine *engine,
+@@ -963,27 +970,71 @@ ibus_hangul_engine_property_activate (IB
}
}
@@ -150,6 +140,3 @@ index 79db70f..a297e4d 100644
}
}
}
---
-1.7.5.1
-
diff --git a/ibus-hangul-xx-icon-symbol.patch b/ibus-hangul-xx-icon-symbol.patch
index 974e50f..e9fd789 100644
--- a/ibus-hangul-xx-icon-symbol.patch
+++ b/ibus-hangul-xx-icon-symbol.patch
@@ -1,101 +1,86 @@
-From e0463ae479a2d40b8f036ac81133585d2edd6e89 Mon Sep 17 00:00:00 2001
-From: Daiki Ueno <ueno(a)unixuser.org>
-Date: Mon, 4 Jul 2011 18:42:43 +0900
-Subject: [PATCH] Supply hotkeys and icon_symbol in engine desc.
-
----
- configure.ac | 4 +++
- m4/.gitignore | 1 +
- m4/ibus.m4 | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++
- src/hangul.xml.in.in | 2 +
- 4 files changed, 58 insertions(+), 0 deletions(-)
- create mode 100644 m4/ibus.m4
-
-diff --git a/configure.ac b/configure.ac
-index 043e150..edf19d8 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -75,6 +75,10 @@ AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Define to the read-only
+Patch to embed hotkeys and symbol property in component XML.
+Index: ibus-hangul-1.3.1/configure.ac
+===================================================================
+--- ibus-hangul-1.3.1.orig/configure.ac
++++ ibus-hangul-1.3.1/configure.ac
+@@ -75,6 +75,10 @@ AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GET
AM_GNU_GETTEXT([external])
AM_GNU_GETTEXT_VERSION([0.17])
-+# hotkeys and icon-symbol properties in component xml
++# hotkeys and symbol properties in component xml
+IBUS_WITH_HOTKEYS([Control+space,Hangul])
-+IBUS_ICON_SYMBOL([&xD55C;])
++IBUS_SET_SYMBOL([&xD55C;])
+
# OUTPUT files
AC_CONFIG_FILES([ po/Makefile.in
-diff --git a/m4/ibus.m4 b/m4/ibus.m4
-new file mode 100644
-index 0000000..b92d000
+Index: ibus-hangul-1.3.1/m4/ibus.m4
+===================================================================
--- /dev/null
-+++ b/m4/ibus.m4
-@@ -0,0 +1,51 @@
++++ ibus-hangul-1.3.1/m4/ibus.m4
+@@ -0,0 +1,52 @@
+# IBUS_WITH_HOTKEYS([DEFAULT])
+AC_DEFUN([IBUS_WITH_HOTKEYS], [
-+ HOTKEYS_DEFAULT=m4_default([$1], [Control+space,Zenkaku_Hankaku])
++ IBUS_HOTKEYS_DEFAULT=m4_default([$1], [Control+space,Zenkaku_Hankaku])
+ AC_ARG_WITH(hotkeys,
+ [AC_HELP_STRING([--with-hotkeys=HOTKEYS],
+ [Use hotkeys for ibus bridge mode. (available value: yes/no/keys)])],
+ [with_hotkeys="$withval"],
+ [with_hotkeys="no"])
+ if test x$with_hotkeys = xno; then
-+ HOTKEYS_XML="<!-- <hotkeys>${HOTKEYS_DEFAULT}</hotkeys> -->"
++ IBUS_HOTKEYS_XML="<!-- <hotkeys>${IBUS_HOTKEYS_DEFAULT}</hotkeys> -->"
+ elif test x$with_hotkeys = xyes -o x$with_hotkeys = x; then
-+ HOTKEYS="$HOTKEYS_DEFAULT"
-+ HOTKEYS_XML="<hotkeys>${HOTKEYS}</hotkeys>"
++ IBUS_HOTKEYS="$IBUS_HOTKEYS_DEFAULT"
++ IBUS_HOTKEYS_XML="<hotkeys>${IBUS_HOTKEYS}</hotkeys>"
+ else
-+ HOTKEYS="$with_hotkeys"
-+ HOTKEYS_XML="<hotkeys>${HOTKEYS}</hotkeys>"
++ IBUS_HOTKEYS="$with_hotkeys"
++ IBUS_HOTKEYS_XML="<hotkeys>${IBUS_HOTKEYS}</hotkeys>"
+ fi
-+ if test x$HOTKEYS != x; then
-+ AC_DEFINE_UNQUOTED(IBUS_HOTKEYS, ["$HOTKEYS"],
++ if test x$IBUS_HOTKEYS != x; then
++ AC_DEFINE_UNQUOTED(IBUS_IBUS_HOTKEYS, ["$IBUS_HOTKEYS"],
+ [IME specific hotkeys for IBus])
-+ AC_SUBST(HOTKEYS)
++ AC_SUBST(IBUS_HOTKEYS)
+ fi
-+ AC_SUBST(HOTKEYS_XML)
++ AC_SUBST(IBUS_HOTKEYS_XML)
+])
+
-+# IBUS_ICON_SYMBOL(SYMBOL)
-+AC_DEFUN([IBUS_ICON_SYMBOL], [
-+ ICON_SYMBOL="$1"
++# IBUS_SET_SYMBOL(SYMBOL)
++AC_DEFUN([IBUS_SET_SYMBOL], [
++ IBUS_SYMBOL="$1"
+ if test x$PYTHON = x; then
+ AM_PATH_PYTHON([2.5])
+ fi
+ AC_MSG_CHECKING([if ibus supports icon symbol])
-+ $PYTHON <<_ICON_SYMBOL_TEST
++ $PYTHON <<_IBUS_SYMBOL_TEST
+import ibus
+engine = ibus.EngineDesc('test')
-+exit(not hasattr(engine, 'icon_symbol'))
-+_ICON_SYMBOL_TEST
++exit(not hasattr(engine, 'symbol'))
++_IBUS_SYMBOL_TEST
+ if test $? -eq 0; then
-+ ICON_SYMBOL_XML="<icon_symbol>${icon_symbol}</icon_symbol>"
++ IBUS_SYMBOL_XML="<symbol>${IBUS_SYMBOL}</symbol>"
+ AC_MSG_RESULT([yes])
+ else
-+ ICON_SYMBOL_XML="<!-- <icon_symbol>${icon_symbol}</icon_symbol> -->"
-+ ICON_SYMBOL=
++ IBUS_SYMBOL_XML="<!-- <symbol>${IBUS_SYMBOL}</symbol> -->"
++ IBUS_SYMBOL=
+ AC_MSG_RESULT([no])
+ fi
-+ if test x$ICON_SYMBOL != x; then
-+ AC_DEFINE_UNQUOTED([IBUS[]_ICON_SYMBOL], ["$ICON_SYMBOL"],
++ if test x$IBUS_SYMBOL != x; then
++ AC_DEFINE_UNQUOTED([IBUS_SYMBOL], ["$IBUS_SYMBOL"],
+ [Icon symbol string for IBus])
++ AC_SUBST(IBUS_SYMBOL)
+ fi
-+ AC_SUBST(ICON_SYMBOL_XML)
++ AC_SUBST(IBUS_SYMBOL_XML)
+])
-diff --git a/src/hangul.xml.in.in b/src/hangul.xml.in.in
-index a87df59..00ba331 100644
---- a/src/hangul.xml.in.in
-+++ b/src/hangul.xml.in.in
+Index: ibus-hangul-1.3.1/src/hangul.xml.in.in
+===================================================================
+--- ibus-hangul-1.3.1.orig/src/hangul.xml.in.in
++++ ibus-hangul-1.3.1/src/hangul.xml.in.in
@@ -21,6 +21,8 @@
<longname>Korean</longname>
<description>Korean Input Method</description>
<rank>99</rank>
-+ @HOTKEYS_XML@
-+ @ICON_SYMBOL_XML@
++ @IBUS_HOTKEYS_XML@
++ @IBUS_SYMBOL_XML@
</engine>
</engines>
---
-1.7.6
-
diff --git a/ibus-hangul.spec b/ibus-hangul.spec
index 69d9766..48a696a 100644
--- a/ibus-hangul.spec
+++ b/ibus-hangul.spec
@@ -1,19 +1,23 @@
-%define require_ibus_version 1.2.99
-%define require_libhangul_version 0.0.10
-%define have_bridge_hotkey 1
+%global require_ibus_version 1.2.99
+%global require_libhangul_version 0.0.10
+%global have_bridge_hotkey 0
+
+%if %have_bridge_hotkey
+%global _with_hotkeys --with-hotkeys
+%endif
Name: ibus-hangul
Version: 1.3.1
-Release: 4%{?dist}
+Release: 5%{?dist}
Summary: The Hangul engine for IBus input platform
License: GPLv2+
Group: System Environment/Libraries
URL: http://code.google.com/p/ibus/
Source0: http://ibus.googlecode.com/files/%{name}-%{version}.tar.gz
+# dummy source to keep quilt series file
+Source1: series
Patch0: ibus-hangul-ibus-1.4.patch
-%if %have_bridge_hotkey
Patch1: ibus-hangul-xx-icon-symbol.patch
-%endif
BuildRequires: gettext-devel
BuildRequires: intltool
@@ -35,17 +39,11 @@ libhangul.
%prep
%setup -q
%patch0 -p1 -b .ibus-1.4
-%if %have_bridge_hotkey
%patch1 -p1 -b .icon-symbol
-%endif
%build
-%if %have_bridge_hotkey
autoreconf
-%configure --disable-static --with-hotkeys
-%else
-%configure --disable-static
-%endif
+%configure --disable-static %{?_with_hotkeys}
# make -C po update-gmo
make %{?_smp_mflags}
@@ -63,6 +61,9 @@ make DESTDIR=${RPM_BUILD_ROOT} install
%{_datadir}/ibus/component/*
%changelog
+* Thu Jul 7 2011 Daiki Ueno <dueno(a)redhat.com> - 1.3.1-5
+- don't specify --with-hotkeys.
+
* Mon Jul 4 2011 Daiki Ueno <dueno(a)redhat.com> - 1.3.1-4
- Added ibus-hangul-xx-icon-symbol.patch to enable the engine symbol & hotkeys.
diff --git a/series b/series
new file mode 100644
index 0000000..42726e1
--- /dev/null
+++ b/series
@@ -0,0 +1,2 @@
+ibus-hangul-ibus-1.4.patch
+ibus-hangul-xx-icon-symbol.patch
12 years, 9 months
[Fedora-i18n-bugs] [ibus-m17n] Untabify.
by Daiki Ueno
commit 099285913ff1f99f85c05534c30b7843daef3781
Author: Daiki Ueno <ueno(a)unixuser.org>
Date: Thu Jul 7 15:08:06 2011 +0900
Untabify.
ibus-m17n.spec | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
---
diff --git a/ibus-m17n.spec b/ibus-m17n.spec
index 04e7519..2589ae5 100644
--- a/ibus-m17n.spec
+++ b/ibus-m17n.spec
@@ -22,8 +22,8 @@ Source0: http://ibus.googlecode.com/files/%{name}-%{version}.tar.gz
Patch0: ibus-m17n-HEAD.patch
Patch1: ibus-m17n-iok.patch
-Patch2: ibus-m17n-xkb-options.patch
-Patch3: ibus-m17n-xx-icon-symbol.patch
+Patch2: ibus-m17n-xkb-options.patch
+Patch3: ibus-m17n-xx-icon-symbol.patch
# The following BR is for autogen and not necessary when packging
# released tarballs.
12 years, 9 months
[Fedora-i18n-bugs] [ibus-m17n] Don't specify --with-hotkeys.
by Daiki Ueno
commit 342925a186c03594fcd38e205a6765c5a8d48bc5
Author: Daiki Ueno <ueno(a)unixuser.org>
Date: Thu Jul 7 14:49:41 2011 +0900
Don't specify --with-hotkeys.
ibus-m17n.spec | 11 +++++------
1 files changed, 5 insertions(+), 6 deletions(-)
---
diff --git a/ibus-m17n.spec b/ibus-m17n.spec
index e4d3100..04e7519 100644
--- a/ibus-m17n.spec
+++ b/ibus-m17n.spec
@@ -1,5 +1,5 @@
%global require_ibus_version 1.3.0
-%global have_bridge_hotkey 1
+%global have_bridge_hotkey 0
%if (0%{?fedora} > 14)
%global _with_gtk --with-gtk=3.0
@@ -13,7 +13,7 @@
Name: ibus-m17n
Version: 1.3.2
-Release: 6%{?dist}
+Release: 7%{?dist}
Summary: The M17N engine for IBus platform
License: GPLv2+
Group: System Environment/Libraries
@@ -23,9 +23,7 @@ Source0: http://ibus.googlecode.com/files/%{name}-%{version}.tar.gz
Patch0: ibus-m17n-HEAD.patch
Patch1: ibus-m17n-iok.patch
Patch2: ibus-m17n-xkb-options.patch
-%if %have_bridge_hotkey
Patch3: ibus-m17n-xx-icon-symbol.patch
-%endif
# The following BR is for autogen and not necessary when packging
# released tarballs.
@@ -55,9 +53,7 @@ the input table maps from m17n-db.
%patch0 -p1 -b .HEAD
%patch1 -p1 -b .iok
%patch2 -p1 -b .xkb-options
-%if %have_bridge_hotkey
%patch3 -p1 -b .xx-icon-symbol
-%endif
NOCONFIGURE=1 ./autogen.sh
%build
@@ -79,6 +75,9 @@ make DESTDIR=${RPM_BUILD_ROOT} install
%{_datadir}/ibus/component/*
%changelog
+* Thu Jul 7 2011 Daiki Ueno <dueno(a)redhat.com> - 1.3.2-7
+- don't specify --with-hotkey.
+
* Mon Jul 4 2011 Daiki Ueno <dueno(a)redhat.com> - 1.3.2-6
- Add ibus-m17n-xkb-options.patch.
- Add ibus-m17n-xx-icon-symbol.patch.
12 years, 9 months
[Fedora-i18n-bugs] [ibus-m17n] Update to 1.3.2-6; migrate to quilt.
by Daiki Ueno
commit 57aab5b85e77118a3c48b362b9e3918eaa611870
Author: Daiki Ueno <ueno(a)unixuser.org>
Date: Thu Jul 7 14:37:21 2011 +0900
Update to 1.3.2-6; migrate to quilt.
ibus-m17n-HEAD.patch | 52 ++++--
ibus-m17n-iok.patch | 35 ++---
ibus-m17n-stscap.patch | 38 ----
ibus-m17n-stsreq.patch | 33 ----
ibus-m17n-xkb-options.patch | 386 ++++++++++++++++++++++++++++++++++++++++
ibus-m17n-xx-icon-symbol.patch | 130 ++++++++++++++
ibus-m17n.spec | 49 ++++--
series | 4 +
8 files changed, 603 insertions(+), 124 deletions(-)
---
diff --git a/ibus-m17n-HEAD.patch b/ibus-m17n-HEAD.patch
index 9b98dea..9c3f6bd 100644
--- a/ibus-m17n-HEAD.patch
+++ b/ibus-m17n-HEAD.patch
@@ -1,7 +1,8 @@
-diff --git a/Makefile.am b/Makefile.am
-index eac3b9d..14a674d 100644
---- a/Makefile.am
-+++ b/Makefile.am
+Patch to synch with the git master 65cc1bc1.
+Index: ibus-m17n-1.3.2/Makefile.am
+===================================================================
+--- ibus-m17n-1.3.2.orig/Makefile.am
++++ ibus-m17n-1.3.2/Makefile.am
@@ -69,7 +69,7 @@ debian/changelog:
version=@VERSION@; \
serie=$(serie); \
@@ -11,10 +12,10 @@ index eac3b9d..14a674d 100644
fi; \
if test -z "$$release"; then \
release=1; \
-diff --git a/configure.ac b/configure.ac
-index 17077f2..4df68b6 100644
---- a/configure.ac
-+++ b/configure.ac
+Index: ibus-m17n-1.3.2/configure.ac
+===================================================================
+--- ibus-m17n-1.3.2.orig/configure.ac
++++ ibus-m17n-1.3.2/configure.ac
@@ -89,7 +89,22 @@ fi
AM_CONDITIONAL([HAVE_GTK],[test x$with_gtk != xno])
@@ -38,10 +39,10 @@ index 17077f2..4df68b6 100644
# define GETTEXT_* variables
GETTEXT_PACKAGE=ibus-m17n
-diff --git a/src/engine.c b/src/engine.c
-index 62359c1..60816b0 100644
---- a/src/engine.c
-+++ b/src/engine.c
+Index: ibus-m17n-1.3.2/src/engine.c
+===================================================================
+--- ibus-m17n-1.3.2.orig/src/engine.c
++++ ibus-m17n-1.3.2/src/engine.c
@@ -1,4 +1,7 @@
/* vim:set et sts=4: */
+#ifdef HAVE_CONFIG_H
@@ -85,7 +86,7 @@ index 62359c1..60816b0 100644
static void ibus_m17n_config_value_changed (IBusConfig *config,
const gchar *section,
const gchar *name,
-@@ -119,7 +102,6 @@ static void ibus_m17n_engine_update_lookup_table
+@@ -119,7 +102,6 @@ static void ibus_m17n_engine_update_look
static IBusEngineClass *parent_class = NULL;
static IBusConfig *config = NULL;
@@ -149,7 +150,7 @@ index 62359c1..60816b0 100644
}
static gboolean
-@@ -239,14 +172,14 @@ ibus_m17n_engine_get_type_for_name (const gchar *engine_name)
+@@ -239,14 +172,14 @@ ibus_m17n_engine_get_type_for_name (cons
GTypeInfo type_info = {
sizeof (IBusM17NEngineClass),
@@ -169,7 +170,7 @@ index 62359c1..60816b0 100644
};
if (!ibus_m17n_scan_engine_name (engine_name, &lang, &name)) {
-@@ -264,11 +197,10 @@ ibus_m17n_engine_get_type_for_name (const gchar *engine_name)
+@@ -264,11 +197,10 @@ ibus_m17n_engine_get_type_for_name (cons
g_assert (type == 0 || g_type_is_a (type, IBUS_TYPE_ENGINE));
if (type == 0) {
@@ -185,7 +186,7 @@ index 62359c1..60816b0 100644
}
g_free (type_name);
-@@ -408,14 +340,6 @@ ibus_m17n_config_value_changed (IBusConfig *config,
+@@ -408,14 +340,6 @@ ibus_m17n_config_value_changed (IBusConf
}
static void
@@ -200,7 +201,24 @@ index 62359c1..60816b0 100644
ibus_m17n_engine_init (IBusM17NEngine *m17n)
{
IBusText* label;
-@@ -986,8 +910,57 @@ ibus_m17n_engine_callback (MInputContext *context,
+@@ -773,6 +697,16 @@ ibus_m17n_engine_enable (IBusEngine *eng
+ IBusM17NEngine *m17n = (IBusM17NEngine *) engine;
+
+ parent_class->enable (engine);
++
++#ifdef HAVE_IBUS_ENGINE_GET_SURROUNDING_TEXT
++ /* Issue a dummy ibus_engine_get_surrounding_text() call to tell
++ input context that we will use surrounding-text. */
++ IBusText *text;
++ guint cursor_pos;
++
++ ibus_engine_get_surrounding_text (engine, &text, &cursor_pos);
++ g_object_unref (text);
++#endif /* HAVE_IBUS_ENGINE_GET_SURROUNDING_TEXT */
+ }
+
+ static void
+@@ -986,8 +920,57 @@ ibus_m17n_engine_callback (MInputContext
}
else if (command == Minput_reset) {
}
diff --git a/ibus-m17n-iok.patch b/ibus-m17n-iok.patch
index df6ef43..e73124f 100644
--- a/ibus-m17n-iok.patch
+++ b/ibus-m17n-iok.patch
@@ -1,17 +1,9 @@
-From c27a0917c26624f1741efeebe20cd5cfb8647a67 Mon Sep 17 00:00:00 2001
-From: Daiki Ueno <ueno(a)unixuser.org>
-Date: Mon, 7 Mar 2011 14:57:32 +0900
-Subject: [PATCH] Apply iok patch from Fedora.
-
----
- src/engine.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
- 1 files changed, 46 insertions(+), 0 deletions(-)
-
-diff --git a/src/engine.c b/src/engine.c
-index 62359c1..362d347 100644
---- a/src/engine.c
-+++ b/src/engine.c
-@@ -37,6 +37,7 @@ struct _IBusM17NEngine {
+Patch to support iok (Indic Onscreen Keyboard).
+Index: ibus-m17n-1.3.2/src/engine.c
+===================================================================
+--- ibus-m17n-1.3.2.orig/src/engine.c
++++ ibus-m17n-1.3.2/src/engine.c
+@@ -23,6 +23,7 @@ struct _IBusM17NEngine {
IBusProperty *setup_prop;
#endif /* HAVE_SETUP */
IBusPropList *prop_list;
@@ -19,7 +11,7 @@ index 62359c1..362d347 100644
};
struct _IBusM17NEngineClass {
-@@ -48,6 +49,7 @@ struct _IBusM17NEngineClass {
+@@ -34,6 +35,7 @@ struct _IBusM17NEngineClass {
guint preedit_background;
gint preedit_underline;
gint lookup_table_orientation;
@@ -27,7 +19,7 @@ index 62359c1..362d347 100644
MInputMethod *im;
};
-@@ -316,6 +318,9 @@ ibus_m17n_engine_class_init (IBusM17NEngineClass *klass)
+@@ -248,6 +250,9 @@ ibus_m17n_engine_class_init (IBusM17NEng
}
engine_name = g_strdup_printf ("m17n:%s:%s", lang, name);
klass->config_section = g_strdup_printf ("engine/M17N/%s/%s", lang, name);
@@ -37,7 +29,7 @@ index 62359c1..362d347 100644
g_free (lang);
g_free (name);
-@@ -420,6 +425,7 @@ ibus_m17n_engine_init (IBusM17NEngine *m17n)
+@@ -344,6 +349,7 @@ ibus_m17n_engine_init (IBusM17NEngine *m
{
IBusText* label;
IBusText* tooltip;
@@ -45,7 +37,7 @@ index 62359c1..362d347 100644
m17n->prop_list = ibus_prop_list_new ();
g_object_ref_sink (m17n->prop_list);
-@@ -452,6 +458,23 @@ ibus_m17n_engine_init (IBusM17NEngine *m17n)
+@@ -376,6 +382,23 @@ ibus_m17n_engine_init (IBusM17NEngine *m
ibus_prop_list_append (m17n->prop_list, m17n->setup_prop);
#endif /* HAVE_SETUP */
@@ -69,7 +61,7 @@ index 62359c1..362d347 100644
m17n->table = ibus_lookup_table_new (9, 0, TRUE, TRUE);
g_object_ref_sink (m17n->table);
m17n->context = NULL;
-@@ -537,6 +560,11 @@ ibus_m17n_engine_destroy (IBusM17NEngine *m17n)
+@@ -461,6 +484,11 @@ ibus_m17n_engine_destroy (IBusM17NEngine
}
#endif /* HAVE_SETUP */
@@ -81,7 +73,7 @@ index 62359c1..362d347 100644
if (m17n->table) {
g_object_unref (m17n->table);
m17n->table = NULL;
-@@ -844,6 +872,24 @@ ibus_m17n_engine_property_activate (IBusEngine *engine,
+@@ -778,6 +806,24 @@ ibus_m17n_engine_property_activate (IBus
}
#endif /* HAVE_SETUP */
@@ -106,6 +98,3 @@ index 62359c1..362d347 100644
parent_class->property_activate (engine, prop_name, prop_state);
}
---
-1.7.4
-
diff --git a/ibus-m17n-xkb-options.patch b/ibus-m17n-xkb-options.patch
new file mode 100644
index 0000000..551f1c8
--- /dev/null
+++ b/ibus-m17n-xkb-options.patch
@@ -0,0 +1,386 @@
+Patch to set certain XKB options when an m17n IME is set.
+Index: ibus-m17n-1.3.2/configure.ac
+===================================================================
+--- ibus-m17n-1.3.2.orig/configure.ac
++++ ibus-m17n-1.3.2/configure.ac
+@@ -106,6 +106,14 @@ AC_CHECK_FUNCS([ibus_engine_get_surround
+ CFLAGS="$save_CFLAGS"
+ LIBS="$save_LIBS"
+
++# check libxklavier
++have_libxklavier=no
++PKG_CHECK_MODULES([LIBXKLAVIER], [libxklavier gdk-3.0 x11],
++ have_libxklavier=yes)
++if test x$have_libxklavier != xno; then
++ AC_DEFINE([HAVE_LIBXKLAVIER], [1], [Define if libxklavier is found])
++fi
++
+ # define GETTEXT_* variables
+ GETTEXT_PACKAGE=ibus-m17n
+ AC_SUBST(GETTEXT_PACKAGE)
+Index: ibus-m17n-1.3.2/src/Makefile.am
+===================================================================
+--- ibus-m17n-1.3.2.orig/src/Makefile.am
++++ ibus-m17n-1.3.2/src/Makefile.am
+@@ -66,10 +66,15 @@ ibus_engine_m17n_SOURCES = \
+ engine.c \
+ engine.h \
+ $(NULL)
++ibus_engine_m17n_CFLAGS = \
++ @LIBXKLAVIER_CFLAGS@ \
++ $(AM_CFLAGS) \
++ $(NULL)
+ ibus_engine_m17n_LDADD = \
+ libm17ncommon.a \
+ @IBUS_LIBS@ \
+ @M17N_LIBS@ \
++ @LIBXKLAVIER_LIBS@ \
+ $(NULL)
+
+ if HAVE_GTK
+Index: ibus-m17n-1.3.2/src/default.xml.in.in
+===================================================================
+--- ibus-m17n-1.3.2.orig/src/default.xml.in.in
++++ ibus-m17n-1.3.2/src/default.xml.in.in
+@@ -12,19 +12,22 @@
+ <preedit-highlight>FALSE</preedit-highlight>
+ </engine>
+ <engine>
+- <name>m17n:bn:inscript</name>
++ <name>m17n:bn:inscript*</name>
+ <rank>2</rank>
+ <preedit-highlight>FALSE</preedit-highlight>
++ <xkb-options>lv3:ralt_switch</xkb-options>
+ </engine>
+ <engine>
+- <name>m17n:gu:inscript</name>
++ <name>m17n:gu:inscript*</name>
+ <rank>2</rank>
+ <preedit-highlight>FALSE</preedit-highlight>
++ <xkb-options>lv3:ralt_switch</xkb-options>
+ </engine>
+ <engine>
+- <name>m17n:hi:inscript</name>
++ <name>m17n:hi:inscript*</name>
+ <rank>2</rank>
+ <preedit-highlight>FALSE</preedit-highlight>
++ <xkb-options>lv3:ralt_switch</xkb-options>
+ </engine>
+ <engine>
+ <name>m17n:kn:kgp</name>
+@@ -37,19 +40,22 @@
+ <preedit-highlight>FALSE</preedit-highlight>
+ </engine>
+ <engine>
+- <name>m17n:mai:inscript</name>
++ <name>m17n:mai:inscript*</name>
+ <rank>2</rank>
+ <preedit-highlight>FALSE</preedit-highlight>
++ <xkb-options>lv3:ralt_switch</xkb-options>
+ </engine>
+ <engine>
+- <name>m17n:ml:inscript</name>
++ <name>m17n:ml:inscript*</name>
+ <rank>2</rank>
+ <preedit-highlight>FALSE</preedit-highlight>
++ <xkb-options>lv3:ralt_switch</xkb-options>
+ </engine>
+ <engine>
+- <name>m17n:mr:inscript</name>
++ <name>m17n:mr:inscript*</name>
+ <rank>2</rank>
+ <preedit-highlight>FALSE</preedit-highlight>
++ <xkb-options>lv3:ralt_switch</xkb-options>
+ </engine>
+ <engine>
+ <name>m17n:ne:rom</name>
+@@ -57,14 +63,16 @@
+ <preedit-highlight>FALSE</preedit-highlight>
+ </engine>
+ <engine>
+- <name>m17n:or:inscript</name>
++ <name>m17n:or:inscript*</name>
+ <rank>2</rank>
+ <preedit-highlight>FALSE</preedit-highlight>
++ <xkb-options>lv3:ralt_switch</xkb-options>
+ </engine>
+ <engine>
+- <name>m17n:pa:inscript</name>
++ <name>m17n:pa:inscript*</name>
+ <rank>2</rank>
+ <preedit-highlight>FALSE</preedit-highlight>
++ <xkb-options>lv3:ralt_switch</xkb-options>
+ </engine>
+ <engine>
+ <name>m17n:sa:harvard-kyoto</name>
+@@ -72,14 +80,16 @@
+ <preedit-highlight>FALSE</preedit-highlight>
+ </engine>
+ <engine>
+- <name>m17n:sd:inscript</name>
++ <name>m17n:sd:inscript*</name>
+ <rank>2</rank>
+ <preedit-highlight>FALSE</preedit-highlight>
++ <xkb-options>lv3:ralt_switch</xkb-options>
+ </engine>
+ <engine>
+ <name>m17n:si:wijesekera</name>
+ <rank>2</rank>
+ <preedit-highlight>FALSE</preedit-highlight>
++ <xkb-options>lv3:ralt_switch</xkb-options>
+ </engine>
+ <engine>
+ <name>m17n:ta:tamil99</name>
+@@ -87,9 +97,10 @@
+ <preedit-highlight>FALSE</preedit-highlight>
+ </engine>
+ <engine>
+- <name>m17n:te:inscript</name>
++ <name>m17n:te:inscript*</name>
+ <rank>2</rank>
+ <preedit-highlight>FALSE</preedit-highlight>
++ <xkb-options>lv3:ralt_switch</xkb-options>
+ </engine>
+ <!-- Samanala should have lower rank than other Sinhala
+ engines since it is the only non-keyboard input method in
+@@ -226,6 +237,7 @@
+ <name>m17n:si:*</name>
+ <rank>1</rank>
+ <preedit-highlight>FALSE</preedit-highlight>
++ <xkb-options>lv3:ralt_switch</xkb-options>
+ </engine>
+ <engine>
+ <name>m17n:ta:*</name>
+Index: ibus-m17n-1.3.2/src/engine.c
+===================================================================
+--- ibus-m17n-1.3.2.orig/src/engine.c
++++ ibus-m17n-1.3.2/src/engine.c
+@@ -6,6 +6,10 @@
+ #include <ibus.h>
+ #include <m17n.h>
+ #include <string.h>
++#ifdef HAVE_LIBXKLAVIER
++#include <gdk/gdkx.h>
++#include <libxklavier/xklavier.h>
++#endif /* HAVE_LIBXKLAVIER */
+ #include "m17nutil.h"
+ #include "engine.h"
+
+@@ -38,6 +42,10 @@ struct _IBusM17NEngineClass {
+ gboolean use_iok;
+
+ MInputMethod *im;
++
++#if HAVE_LIBXKLAVIER
++ XklConfigRec *xkl_config_rec;
++#endif /* HAVE_LIBXKLAVIER */
+ };
+
+ /* functions prototype */
+@@ -105,12 +113,90 @@ static IBusEngineClass *parent_class = N
+
+ static IBusConfig *config = NULL;
+
++#if HAVE_LIBXKLAVIER
++static XklEngine *xkl_engine = NULL;
++static XklConfigRec *xkl_system_config_rec = NULL;
++
++static gboolean
++parse_xkb_options (XklConfigRec *config_rec, const gchar *xkb_options)
++{
++ gchar **strv;
++
++ strv = g_strsplit (xkb_options, ",", -1);
++ if (g_strv_length (strv) < 1) {
++ g_strfreev (strv);
++ return FALSE;
++ }
++
++ g_strfreev (config_rec->options);
++ config_rec->options = strv;
++
++ return TRUE;
++}
++
++static GdkFilterReturn
++filter_xkl_event (GdkXEvent *xev,
++ GdkEvent *event,
++ gpointer user_data)
++{
++ XEvent *xevent = (XEvent *)xev;
++
++ xkl_engine_filter_events (xkl_engine, xevent);
++ return GDK_FILTER_CONTINUE;
++}
++
++static void
++on_xkl_config_changed (XklEngine *xklengine,
++ gpointer user_data)
++{
++ IBusM17NEngineClass *klass = user_data;
++ XklConfigRec *config_rec;
++
++ config_rec = xkl_config_rec_new ();
++ if (!xkl_config_rec_get_from_server (config_rec, xkl_engine)) {
++ g_object_unref (config_rec);
++ g_warning ("Can't get default keyboard config from the server");
++ } else if (klass->xkl_config_rec &&
++ !xkl_config_rec_equals (config_rec, klass->xkl_config_rec)) {
++ if (xkl_system_config_rec)
++ g_object_unref (xkl_system_config_rec);
++ xkl_system_config_rec = config_rec;
++ }
++}
++#endif /* HAVE_LIBXKLAVIER */
++
+ void
+ ibus_m17n_init (IBusBus *bus)
+ {
++#if HAVE_LIBXKLAVIER
++ if (gdk_init_check (NULL, NULL)) {
++ GdkDisplay *display = gdk_display_get_default ();
++ g_assert (display);
++
++ xkl_engine = xkl_engine_get_instance (GDK_DISPLAY_XDISPLAY (display));
++ xkl_system_config_rec = xkl_config_rec_new ();
++ if (!xkl_config_rec_get_from_server (xkl_system_config_rec,
++ xkl_engine)) {
++ g_object_unref (xkl_system_config_rec);
++ xkl_system_config_rec = NULL;
++
++ g_warning ("Can't get default keyboard config from the server");
++ } else {
++ gdk_window_add_filter (NULL,
++ (GdkFilterFunc) filter_xkl_event,
++ NULL);
++ gdk_window_add_filter (gdk_get_default_root_window (),
++ (GdkFilterFunc) filter_xkl_event,
++ NULL);
++ xkl_engine_start_listen (xkl_engine, XKLL_TRACK_KEYBOARD_STATE);
++ }
++ }
++#endif /* HAVE_LIBXKLAVIER */
++
+ config = ibus_bus_get_config (bus);
+ if (config)
+ g_object_ref_sink (config);
++
+ ibus_m17n_init_common ();
+ }
+
+@@ -299,6 +385,25 @@ ibus_m17n_engine_class_init (IBusM17NEng
+ G_CALLBACK(ibus_m17n_config_value_changed),
+ klass);
+
++#if HAVE_LIBXKLAVIER
++ if (engine_config->xkb_options) {
++ klass->xkl_config_rec = xkl_config_rec_new ();
++ if (!xkl_config_rec_get_from_server (klass->xkl_config_rec,
++ xkl_engine)) {
++ g_object_unref (klass->xkl_config_rec);
++ g_warning ("Can't get default keyboard config from the server");
++ } else if (!parse_xkb_options (klass->xkl_config_rec,
++ engine_config->xkb_options)) {
++ g_object_unref (klass->xkl_config_rec);
++ g_warning ("Can't parse xkb options %s",
++ engine_config->xkb_options);
++ }
++ }
++
++ g_signal_connect (xkl_engine, "X-config-changed",
++ G_CALLBACK(on_xkl_config_changed), klass);
++#endif /* HAVE_LIBXKLAVIER */
++
+ klass->im = NULL;
+ }
+
+@@ -412,6 +517,9 @@ ibus_m17n_engine_constructor (GType
+ IBusM17NEngine *m17n;
+ GObjectClass *object_class;
+ IBusM17NEngineClass *klass;
++#if HAVE_LIBXKLAVIER
++ GdkDisplay *display;
++#endif /* HAVE_LIBXKLAVIER */
+
+ m17n = (IBusM17NEngine *) G_OBJECT_CLASS (parent_class)->constructor (type,
+ n_construct_params,
+@@ -499,6 +607,11 @@ ibus_m17n_engine_destroy (IBusM17NEngine
+ m17n->context = NULL;
+ }
+
++#if HAVE_LIBXKLAVIER
++ if (xkl_system_config_rec)
++ xkl_config_rec_activate (xkl_system_config_rec, xkl_engine);
++#endif /* HAVE_LIBXKLAVIER */
++
+ IBUS_OBJECT_CLASS (parent_class)->destroy ((IBusObject *)m17n);
+ }
+
+@@ -735,6 +848,19 @@ ibus_m17n_engine_enable (IBusEngine *eng
+ ibus_engine_get_surrounding_text (engine, &text, &cursor_pos);
+ g_object_unref (text);
+ #endif /* HAVE_IBUS_ENGINE_GET_SURROUNDING_TEXT */
++
++#if HAVE_LIBXKLAVIER
++ GObjectClass *object_class;
++ IBusM17NEngineClass *klass;
++
++ object_class = G_OBJECT_GET_CLASS (m17n);
++ klass = (IBusM17NEngineClass *) object_class;
++
++ if (klass->xkl_config_rec) {
++ if (!xkl_config_rec_activate (klass->xkl_config_rec, xkl_engine))
++ g_warning ("Can't set the XKB layout");
++ }
++#endif /* HAVE_LIBXKLAVIER */
+ }
+
+ static void
+@@ -744,6 +870,17 @@ ibus_m17n_engine_disable (IBusEngine *en
+
+ ibus_m17n_engine_focus_out (engine);
+ parent_class->disable (engine);
++
++#if HAVE_LIBXKLAVIER
++ GObjectClass *object_class;
++ IBusM17NEngineClass *klass;
++
++ object_class = G_OBJECT_GET_CLASS (m17n);
++ klass = (IBusM17NEngineClass *) object_class;
++
++ if (xkl_system_config_rec)
++ xkl_config_rec_activate (xkl_system_config_rec, xkl_engine);
++#endif /* HAVE_LIBXKLAVIER */
+ }
+
+ static void
+Index: ibus-m17n-1.3.2/src/m17nutil.c
+===================================================================
+--- ibus-m17n-1.3.2.orig/src/m17nutil.c
++++ ibus-m17n-1.3.2/src/m17nutil.c
+@@ -290,6 +290,11 @@ ibus_m17n_engine_config_parse_xml_node (
+ sub_node->name, sub_node->text);
+ continue;
+ }
++ if (g_strcmp0 (sub_node->name, "xkb-options") == 0) {
++ g_free (cnode->config.xkb_options);
++ cnode->config.xkb_options = g_strdup (sub_node->text);
++ continue;
++ }
+ g_warning ("<engine> element contains invalid element <%s>",
+ sub_node->name);
+ }
+Index: ibus-m17n-1.3.2/src/m17nutil.h
+===================================================================
+--- ibus-m17n-1.3.2.orig/src/m17nutil.h
++++ ibus-m17n-1.3.2/src/m17nutil.h
+@@ -16,6 +16,9 @@ struct _IBusM17NEngineConfig {
+
+ /* whether to highlight preedit */
+ gboolean preedit_highlight;
++
++ /* keyboard options to which the engine switches when enabled */
++ char *xkb_options;
+ };
+
+ typedef struct _IBusM17NEngineConfig IBusM17NEngineConfig;
diff --git a/ibus-m17n-xx-icon-symbol.patch b/ibus-m17n-xx-icon-symbol.patch
new file mode 100644
index 0000000..43dac05
--- /dev/null
+++ b/ibus-m17n-xx-icon-symbol.patch
@@ -0,0 +1,130 @@
+Patch to embed hotkeys and symbol property in component XML.
+Index: ibus-m17n-1.3.2/configure.ac
+===================================================================
+--- ibus-m17n-1.3.2.orig/configure.ac
++++ ibus-m17n-1.3.2/configure.ac
+@@ -122,6 +122,10 @@ AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GET
+ AM_GNU_GETTEXT([external])
+ AM_GNU_GETTEXT_VERSION(0.16.1)
+
++# hotkeys in component xml
++IBUS_WITH_HOTKEYS
++IBUS_SET_SYMBOL([?])
++
+
+ # OUTPUT files
+ AC_CONFIG_FILES([ po/Makefile.in
+Index: ibus-m17n-1.3.2/m4/ibus.m4
+===================================================================
+--- /dev/null
++++ ibus-m17n-1.3.2/m4/ibus.m4
+@@ -0,0 +1,52 @@
++# IBUS_WITH_HOTKEYS([DEFAULT])
++AC_DEFUN([IBUS_WITH_HOTKEYS], [
++ IBUS_HOTKEYS_DEFAULT=m4_default([$1], [Control+space,Zenkaku_Hankaku])
++ AC_ARG_WITH(hotkeys,
++ [AC_HELP_STRING([--with-hotkeys=HOTKEYS],
++ [Use hotkeys for ibus bridge mode. (available value: yes/no/keys)])],
++ [with_hotkeys="$withval"],
++ [with_hotkeys="no"])
++ if test x$with_hotkeys = xno; then
++ IBUS_HOTKEYS_XML="<!-- <hotkeys>${IBUS_HOTKEYS_DEFAULT}</hotkeys> -->"
++ elif test x$with_hotkeys = xyes -o x$with_hotkeys = x; then
++ IBUS_HOTKEYS="$IBUS_HOTKEYS_DEFAULT"
++ IBUS_HOTKEYS_XML="<hotkeys>${IBUS_HOTKEYS}</hotkeys>"
++ else
++ IBUS_HOTKEYS="$with_hotkeys"
++ IBUS_HOTKEYS_XML="<hotkeys>${IBUS_HOTKEYS}</hotkeys>"
++ fi
++ if test x$IBUS_HOTKEYS != x; then
++ AC_DEFINE_UNQUOTED(IBUS_IBUS_HOTKEYS, ["$IBUS_HOTKEYS"],
++ [IME specific hotkeys for IBus])
++ AC_SUBST(IBUS_HOTKEYS)
++ fi
++ AC_SUBST(IBUS_HOTKEYS_XML)
++])
++
++# IBUS_SET_SYMBOL(SYMBOL)
++AC_DEFUN([IBUS_SET_SYMBOL], [
++ IBUS_SYMBOL="$1"
++ if test x$PYTHON = x; then
++ AM_PATH_PYTHON([2.5])
++ fi
++ AC_MSG_CHECKING([if ibus supports icon symbol])
++ $PYTHON <<_IBUS_SYMBOL_TEST
++import ibus
++engine = ibus.EngineDesc('test')
++exit(not hasattr(engine, 'symbol'))
++_IBUS_SYMBOL_TEST
++ if test $? -eq 0; then
++ IBUS_SYMBOL_XML="<symbol>${IBUS_SYMBOL}</symbol>"
++ AC_MSG_RESULT([yes])
++ else
++ IBUS_SYMBOL_XML="<!-- <symbol>${IBUS_SYMBOL}</symbol> -->"
++ IBUS_SYMBOL=
++ AC_MSG_RESULT([no])
++ fi
++ if test x$IBUS_SYMBOL != x; then
++ AC_DEFINE_UNQUOTED([IBUS_SYMBOL], ["$IBUS_SYMBOL"],
++ [Icon symbol string for IBus])
++ AC_SUBST(IBUS_SYMBOL)
++ fi
++ AC_SUBST(IBUS_SYMBOL_XML)
++])
+Index: ibus-m17n-1.3.2/src/default.xml.in.in
+===================================================================
+--- ibus-m17n-1.3.2.orig/src/default.xml.in.in
++++ ibus-m17n-1.3.2/src/default.xml.in.in
+@@ -254,5 +254,7 @@
+ <name>m17n:*</name>
+ <rank>0</rank>
+ <preedit-highlight>FALSE</preedit-highlight>
++ @IBUS_HOTKEYS_XML@
++ @IBUS_SYMBOL_XML@
+ </engine>
+ </engines>
+Index: ibus-m17n-1.3.2/src/m17nutil.c
+===================================================================
+--- ibus-m17n-1.3.2.orig/src/m17nutil.c
++++ ibus-m17n-1.3.2/src/m17nutil.c
+@@ -122,6 +122,8 @@ ibus_m17n_engine_new (MSymbol lang,
+ "icon", engine_icon ? engine_icon : "",
+ "layout", "us",
+ "rank", config->rank,
++ "hotkeys", config->hotkeys ? config->hotkeys : "",
++ "symbol", config->symbol ? config->symbol : "",
+ NULL);
+ #else
+ engine = ibus_engine_desc_new (engine_name,
+@@ -282,6 +284,14 @@ ibus_m17n_engine_config_parse_xml_node (
+ cnode->config.rank = atoi (sub_node->text);
+ continue;
+ }
++ if (g_strcmp0 (sub_node->name , "hotkeys") == 0) {
++ cnode->config.hotkeys = g_strdup (sub_node->text);
++ continue;
++ }
++ if (g_strcmp0 (sub_node->name , "symbol") == 0) {
++ cnode->config.symbol = g_strdup (sub_node->text);
++ continue;
++ }
+ if (g_strcmp0 (sub_node->name , "preedit-highlight") == 0) {
+ if (g_ascii_strcasecmp ("TRUE", sub_node->text) == 0)
+ cnode->config.preedit_highlight = TRUE;
+Index: ibus-m17n-1.3.2/src/m17nutil.h
+===================================================================
+--- ibus-m17n-1.3.2.orig/src/m17nutil.h
++++ ibus-m17n-1.3.2/src/m17nutil.h
+@@ -14,6 +14,12 @@ struct _IBusM17NEngineConfig {
+ /* engine rank */
+ gint rank;
+
++ /* hotkeys */
++ gchar *hotkeys;
++
++ /* symbol */
++ gchar *symbol;
++
+ /* whether to highlight preedit */
+ gboolean preedit_highlight;
+
diff --git a/ibus-m17n.spec b/ibus-m17n.spec
index 89ed649..e4d3100 100644
--- a/ibus-m17n.spec
+++ b/ibus-m17n.spec
@@ -1,20 +1,31 @@
-%define require_ibus_version 1.3.0
+%global require_ibus_version 1.3.0
+%global have_bridge_hotkey 1
+
+%if (0%{?fedora} > 14)
+%global _with_gtk --with-gtk=3.0
+%else
+%global _with_gtk --with-gtk=2.0
+%endif
+
+%if %have_bridge_hotkey
+%global _with_hotkeys --with-hotkeys
+%endif
Name: ibus-m17n
Version: 1.3.2
-Release: 5%{?dist}
+Release: 6%{?dist}
Summary: The M17N engine for IBus platform
License: GPLv2+
Group: System Environment/Libraries
URL: http://code.google.com/p/ibus/
Source0: http://ibus.googlecode.com/files/%{name}-%{version}.tar.gz
-Patch0: ibus-m17n-iok.patch
-Patch1: ibus-m17n-HEAD.patch
-# Surrounding-text support fixes. Hopefully Patch2 won't be needed
-# with future IBus versions.
-Patch2: ibus-m17n-stscap.patch
-Patch3: ibus-m17n-stsreq.patch
+Patch0: ibus-m17n-HEAD.patch
+Patch1: ibus-m17n-iok.patch
+Patch2: ibus-m17n-xkb-options.patch
+%if %have_bridge_hotkey
+Patch3: ibus-m17n-xx-icon-symbol.patch
+%endif
# The following BR is for autogen and not necessary when packging
# released tarballs.
@@ -23,7 +34,12 @@ BuildRequires: libtool
BuildRequires: pkgconfig
BuildRequires: gnome-common
BuildRequires: m17n-lib-devel
+%if (0%{?fedora} > 14)
BuildRequires: gtk3-devel
+%else
+BuildRequires: gtk2-devel
+%endif
+BuildRequires: libxklavier-devel
BuildRequires: ibus-devel >= %{require_ibus_version}
Requires: ibus >= %{require_ibus_version}
@@ -36,14 +52,16 @@ the input table maps from m17n-db.
%prep
%setup -q
-%patch0 -p1 -b .iok
-%patch1 -p1 -b .HEAD
-%patch2 -p1 -b .stscap
-%patch3 -p1 -b .stsreq
+%patch0 -p1 -b .HEAD
+%patch1 -p1 -b .iok
+%patch2 -p1 -b .xkb-options
+%if %have_bridge_hotkey
+%patch3 -p1 -b .xx-icon-symbol
+%endif
NOCONFIGURE=1 ./autogen.sh
%build
-%configure --disable-static --with-gtk=3.0
+%configure --disable-static %{?_with_gtk} %{?_with_hotkeys}
# make -C po update-gmo
make %{?_smp_mflags}
@@ -61,6 +79,11 @@ make DESTDIR=${RPM_BUILD_ROOT} install
%{_datadir}/ibus/component/*
%changelog
+* Mon Jul 4 2011 Daiki Ueno <dueno(a)redhat.com> - 1.3.2-6
+- Add ibus-m17n-xkb-options.patch.
+- Add ibus-m17n-xx-icon-symbol.patch.
+- Drop surrounding-text patches since they are included in the HEAD patch.
+
* Wed Jun 15 2011 Daiki Ueno <dueno(a)redhat.com> - 1.3.2-5
- Add ibus-m17n-stsreq.patch.
- Fix bug 711126 - ibus: surrounding text support fails for the first
diff --git a/series b/series
new file mode 100644
index 0000000..d44fc01
--- /dev/null
+++ b/series
@@ -0,0 +1,4 @@
+ibus-m17n-HEAD.patch
+ibus-m17n-iok.patch
+ibus-m17n-xkb-options.patch
+ibus-m17n-xx-icon-symbol.patch
12 years, 9 months
[Fedora-i18n-bugs] [Bug 719353] New: [abrt] imsettings-1.2.3-1.fc15: __GI___libc_free: Process /usr/libexec/imsettings-daemon was killed by signal 11 (SIGSEGV)
by Red Hat Bugzilla
Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug.
Summary: [abrt] imsettings-1.2.3-1.fc15: __GI___libc_free: Process /usr/libexec/imsettings-daemon was killed by signal 11 (SIGSEGV)
https://bugzilla.redhat.com/show_bug.cgi?id=719353
Summary: [abrt] imsettings-1.2.3-1.fc15: __GI___libc_free:
Process /usr/libexec/imsettings-daemon was killed by
signal 11 (SIGSEGV)
Product: Fedora
Version: 15
Platform: x86_64
OS/Version: Unspecified
Status: NEW
Status Whiteboard: abrt_hash:b5282fb123d7b42863f86e6388361f8c183b551a
Severity: unspecified
Priority: unspecified
Component: imsettings
AssignedTo: tagoh(a)redhat.com
ReportedBy: xjtu_chdongsh(a)hotmail.com
QAContact: extras-qa(a)fedoraproject.org
CC: tagoh(a)redhat.com, i18n-bugs(a)lists.fedoraproject.org
Classification: Fedora
Story Points: ---
abrt version: 2.0.3
architecture: x86_64
backtrace_rating: 4
cmdline: /usr/libexec/imsettings-daemon
comment: After entering gnome3, the crash happen
component: imsettings
crash_function: __GI___libc_free
executable: /usr/libexec/imsettings-daemon
kernel: 2.6.39-1.fc16.x86_64
os_release: Fedora release 15 (Lovelock)
package: imsettings-1.2.3-1.fc15
reason: Process /usr/libexec/imsettings-daemon was killed by signal 11
(SIGSEGV)
time: Wed Jul 6 22:55:34 2011
uid: 500
username: chendongsh
var_log_messages: Jul 6 22:55:35 chendongsh abrt[2063]: saved core dump of pid
2007 (/usr/libexec/imsettings-daemon) to
/var/spool/abrt/ccpp-2011-07-06-22:55:34-2007.new/coredump (18026496 bytes)
backtrace:
:warning: core file may not match specified executable file.
:Missing separate debuginfo for
:Try: yum --disablerepo='*' --enablerepo='*-debuginfo' install
/usr/lib/debug/.build-id/ff/ff60c4772e619261166d54e2679a8936b2ba15
:[New LWP 2007]
:[New LWP 2008]
:[New LWP 2015]
:[Thread debugging using libthread_db enabled]
:Core was generated by `/usr/libexec/imsettings-daemon'.
:Program terminated with signal 11, Segmentation fault.
:#0 __GI___libc_free (mem=0xffffffff00000000) at malloc.c:3709
:3709 if (chunk_is_mmapped(p)) /* release mmapped
memory. */
:
:Thread 3 (Thread 0x7f6683fff700 (LWP 2015)):
:#0 0x0000003d632d7293 in __GI___poll (fds=<optimized out>, nfds=<optimized
out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
: resultvar = <optimized out>
: oldtype = 0
: result = <optimized out>
:#1 0x0000003d65242d24 in g_main_context_poll (n_fds=1, fds=0x7f667c001130,
priority=<optimized out>, timeout=120000, context=0x2499720) at gmain.c:3405
: poll_func = 0x3d65251310 <g_poll>
:#2 g_main_context_iterate (context=0x2499720, block=<optimized out>,
dispatch=1, self=<optimized out>) at gmain.c:3087
: max_priority = 2147483647
: timeout = 120000
: some_ready = <optimized out>
: nfds = 1
: allocated_nfds = <optimized out>
: fds = 0x7f667c001130
: __PRETTY_FUNCTION__ = "g_main_context_iterate"
:#3 0x0000003d6524360d in g_main_loop_run (loop=0x7f667c001110) at
gmain.c:3300
: self = 0x2499230
: __PRETTY_FUNCTION__ = "g_main_loop_run"
:#4 0x00007f66885f2b6b in dconf_context_thread (data=0x2499720) at
dconfcontext.c:11
: context = 0x2499720
: loop = <optimized out>
: __PRETTY_FUNCTION__ = "dconf_context_thread"
:#5 0x0000003d652683a6 in g_thread_create_proxy (data=0x2499230) at
gthread.c:1955
: thread = 0x2499230
: __PRETTY_FUNCTION__ = "g_thread_create_proxy"
:#6 0x0000003d63a07af1 in start_thread (arg=0x7f6683fff700) at
pthread_create.c:305
: __res = <optimized out>
: pd = 0x7f6683fff700
: now = <optimized out>
: unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, 5478993860755329208,
140734045520688, 140078277982656, 0, 3, -5565239552341307208,
5508901404564787384}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},
data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
: not_first_call = 0
: pagesize_m1 = <optimized out>
: sp = <optimized out>
: freesize = <optimized out>
:#7 0x0000003d632dfb7d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:115
:No locals.
:
:Thread 2 (Thread 0x7f6689a63700 (LWP 2008)):
:#0 0x0000003d632d7293 in __GI___poll (fds=<optimized out>, nfds=<optimized
out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
: resultvar = <optimized out>
: oldtype = 0
: result = <optimized out>
:#1 0x0000003d65242d24 in g_main_context_poll (n_fds=3, fds=0x7f6684001e00,
priority=<optimized out>, timeout=-1, context=0x2476be0) at gmain.c:3405
: poll_func = 0x3d65251310 <g_poll>
:#2 g_main_context_iterate (context=0x2476be0, block=<optimized out>,
dispatch=1, self=<optimized out>) at gmain.c:3087
: max_priority = 2147483647
: timeout = -1
: some_ready = <optimized out>
: nfds = 3
: allocated_nfds = <optimized out>
: fds = 0x7f6684001e00
: __PRETTY_FUNCTION__ = "g_main_context_iterate"
:#3 0x0000003d6524360d in g_main_loop_run (loop=0x2476bc0) at gmain.c:3300
: self = 0x2476cd0
: __PRETTY_FUNCTION__ = "g_main_loop_run"
:#4 0x0000003d696b4564 in gdbus_shared_thread_func (data=<optimized out>) at
gdbusprivate.c:276
:No locals.
:#5 0x0000003d652683a6 in g_thread_create_proxy (data=0x2476cd0) at
gthread.c:1955
: thread = 0x2476cd0
: __PRETTY_FUNCTION__ = "g_thread_create_proxy"
:#6 0x0000003d63a07af1 in start_thread (arg=0x7f6689a63700) at
pthread_create.c:305
: __res = <optimized out>
: pd = 0x7f6689a63700
: now = <optimized out>
: unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, 5478993860755329208,
140734045522096, 140078372764096, 0, 3, -5565225728989065032,
5508901404564787384}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},
data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
: not_first_call = 0
: pagesize_m1 = <optimized out>
: sp = <optimized out>
: freesize = <optimized out>
:#7 0x0000003d632dfb7d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:115
:No locals.
:
:Thread 1 (Thread 0x7f6689a647c0 (LWP 2007)):
:#0 __GI___libc_free (mem=0xffffffff00000000) at malloc.c:3709
: ar_ptr = <optimized out>
: p = <optimized out>
: hook = 0
:#1 0x0000003d65249743 in g_free (mem=0xffffffff00000000) at gmem.c:263
:No locals.
:#2 0x0000003d6525e85f in g_slice_free1 (mem_size=0,
mem_block=0xffffffff00000000) at gslice.c:907
: chunk_size = 0
: acat = 0
:#3 0x0000003d65283180 in tuple_info_free (info=<optimized out>) at
gvarianttypeinfo.c:347
: i = <optimized out>
:#4 g_variant_type_info_unref (info=0x7f667c001860) at gvarianttypeinfo.c:855
:No locals.
:#5 g_variant_type_info_unref (info=0x7f667c001860) at gvarianttypeinfo.c:829
:No locals.
:#6 0x0000003d6527c922 in g_variant_unref (value=0x7f667c001b60) at
gvariant-core.c:625
:No locals.
:#7 0x0000003d69663e5f in clear_op_res (simple=0x7f6684003400
[GSimpleAsyncResult]) at gsimpleasyncresult.c:256
:No locals.
:#8 g_simple_async_result_finalize (object=0x7f6684003400
[GSimpleAsyncResult]) at gsimpleasyncresult.c:274
: simple = 0x7f6684003400 [GSimpleAsyncResult]
:#9 0x0000003d66a0f6c1 in g_object_unref (_object=0x7f6684003400) at
gobject.c:2734
: object = 0x7f6684003400 [GSimpleAsyncResult]
: old_ref = <optimized out>
: __PRETTY_FUNCTION__ = "g_object_unref"
:#10 0x0000003d696a74a5 in g_dbus_connection_call_done (source=<optimized out>,
result=<optimized out>, user_data=0x2498e80) at gdbusconnection.c:5025
: connection = <optimized out>
: state = 0x2498e80
: error = 0x0
: reply = 0x2482680 [GDBusMessage]
: value = <optimized out>
:#11 0x0000003d69664d99 in complete_in_idle_cb (data=<optimized out>) at
gsimpleasyncresult.c:757
: simple = <optimized out>
:#12 0x0000003d652427ed in g_main_dispatch (context=0x7f66840008c0) at
gmain.c:2441
: dispatch = 0x3d6523e750 <g_idle_dispatch>
: was_in_call = 0
: user_data = 0x2495de0
: callback = 0x3d69664d90 <complete_in_idle_cb>
: cb_funcs = 0x3d65515c50
: cb_data = 0x7f6684006a40
: current_source_link = {data = 0x7f6684006b40, next = 0x0}
: need_destroy = <optimized out>
: source = 0x7f6684006b40
: current = 0x2477890
: i = <optimized out>
:#13 g_main_context_dispatch (context=0x7f66840008c0) at gmain.c:3014
:No locals.
:#14 0x0000003d65242fc8 in g_main_context_iterate (context=0x7f66840008c0,
block=<optimized out>, dispatch=1, self=<optimized out>) at gmain.c:3092
: max_priority = 0
: timeout = 0
: some_ready = 1
: nfds = 2
: allocated_nfds = <optimized out>
: fds = <optimized out>
: __PRETTY_FUNCTION__ = "g_main_context_iterate"
:#15 0x0000003d6524360d in g_main_loop_run (loop=0x24785e0) at gmain.c:3300
: self = 0x245e100
: __PRETTY_FUNCTION__ = "g_main_loop_run"
:#16 0x0000000000404a7f in main (argc=1, argv=0x7fff32ca8d18) at main.c:184
: err = 0x0
: arg_replace = 0
: arg_no_logfile = 0
: arg_xinputrcdir = 0x0
: arg_xinputdir = 0x0
: arg_homedir = 0x0
: arg_moduledir = 0x0
: loop = 0x24785e0
: ctx = <optimized out>
: entries = {{long_name = 0x40a9a8 "replace", short_name = 0 '\000',
flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x7fff32ca8c18, description =
0x40a830 "Replace the instance of the imsettings daemon.", arg_description =
0x0}, {long_name = 0x40a005 "xinputrcdir", short_name = 0 '\000', flags = 1,
arg = G_OPTION_ARG_STRING, arg_data = 0x7fff32ca8bf8, description = 0x40a860
"Set the system-wide xinputrc directory (for debugging purpose)",
arg_description = 0x40a9b0 "DIR"}, {long_name = 0x40a022 "xinputdir",
short_name = 0 '\000', flags = 1, arg = G_OPTION_ARG_STRING, arg_data =
0x7fff32ca8c00, description = 0x40a8a0 "Set the IM configuration directory (for
debugging purpose)", arg_description = 0x40a9b0 "DIR"}, {long_name = 0x409fea
"homedir", short_name = 0 '\000', flags = 1, arg = G_OPTION_ARG_STRING,
arg_data = 0x7fff32ca8c08, description = 0x40a8e0 "Set a home directory (for
debugging purpose)", arg_description = 0x40a9b0 "DIR"}, {long_name = 0x40a048
"moduledir", short_name = 0 '\000', flags = 1, arg = G_OPTION_ARG_STRING,
arg_data = 0x7fff32ca8c10, description = 0x40a910 "Set the imsettings module
directory (for debugging purpose)", arg_description = 0x40a9b0 "DIR"},
{long_name = 0x40a9b4 "no-logfile", short_name = 0 '\000', flags = 1, arg =
G_OPTION_ARG_NONE, arg_data = 0x7fff32ca8c1c, description = 0x40a9bf "Do not
create a log file.", arg_description = 0x0}, {long_name = 0x0, short_name = 0
'\000', flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x0, description = 0x0,
arg_description = 0x0}}
: connection = 0x246d810 [GDBusConnection]
:From To Syms Read Shared Object Library
:0x0000003d77a02750 0x0000003d77a04cec Yes
/usr/lib64/libnotify.so.4.0.0
:0x0000003d6b606290 0x0000003d6b619c9c Yes
/usr/lib64/libgdk_pixbuf-2.0.so.0.2300.3
:0x0000003d67604870 0x0000003d6761eb5c Yes
/usr/lib64/libpng12.so.0.44.0
:0x0000003d63e03ea0 0x0000003d63e43e9c Yes /lib64/libm-2.14.so
:0x0000003d67e03200 0x0000003d67e071dc Yes
/usr/lib64/libimsettings.so.5.1.0
:0x0000003d696294a0 0x0000003d696d2b3c Yes
/lib64/libgio-2.0.so.0.2800.8
:0x0000003d68600fe0 0x0000003d68601f8c Yes
/lib64/libgmodule-2.0.so.0.2800.8
:0x0000003d66a09970 0x0000003d66a39dcc Yes
/lib64/libgobject-2.0.so.0.2800.8
:0x0000003d65a01560 0x0000003d65a02a2c Yes
/lib64/libgthread-2.0.so.0.2800.8
:0x0000003d64602160 0x0000003d646053ec Yes /lib64/librt-2.14.so
:0x0000003d65216cd0 0x0000003d652adbec Yes
/lib64/libglib-2.0.so.0.2800.8
:0x0000003d63a05640 0x0000003d63a1038c Yes /lib64/libpthread-2.14.so
:0x0000003d6321ece0 0x0000003d6334304c Yes /lib64/libc-2.14.so
:0x0000003d64a01e70 0x0000003d64a0e67c Yes /lib64/libz.so.1.2.5
:0x0000003d63600de0 0x0000003d6360191c Yes /lib64/libdl-2.14.so
:0x0000003d65603840 0x0000003d6561354c Yes /lib64/libresolv-2.14.so
:0x0000003d64e05980 0x0000003d64e159dc Yes /lib64/libselinux.so.1
:0x0000003d62e00b20 0x0000003d62e18caa Yes /lib64/ld-2.14.so
:0x00007f6689052c00 0x00007f668905ecdc Yes
/usr/lib64/gio/modules/libgioremote-volume-monitor.so
:0x0000003d66209210 0x0000003d662132ec Yes
/usr/lib64/libgvfscommon.so.0.0.0
:0x0000003d6b2076f0 0x0000003d6b23050c Yes /lib64/libdbus-1.so.3.5.4
:0x0000003d67203b70 0x0000003d6721d84c Yes /lib64/libexpat.so.1.5.2
:0x0000003d7b000e10 0x0000003d7b00168c Yes /lib64/libutil-2.14.so
:0x00007f6688e2dab0 0x00007f6688e466ac Yes
/usr/lib64/gio/modules/libgvfsdbus.so
:0x0000003d71e02e40 0x0000003d71e0accc Yes /lib64/libudev.so.0.11.1
:0x0000003d642028a0 0x0000003d642120cc Yes
/lib64/libgcc_s-4.6.0-20110603.so.1
:0x00007f6688c1a170 0x00007f6688c218ac Yes
/lib64/libnss_files-2.14.so
:0x00007f6688a17890 0x00007f6688a17b7c Yes
/usr/lib64/imsettings/libimsettings-gsettings.so
:0x00007f6688815a20 0x00007f6688815f5c Yes
/usr/lib64/imsettings/libimsettings-qt.so
:0x00007f66885f0900 0x00007f66885f3eac Yes
/usr/lib64/gio/modules/libdconfsettings.so
:$1 = 0x0
:$2 = 0x0
:rax 0x0 0
:rbx 0xffffffff00000000 -4294967296
:rcx 0x3d635941e8 263659799016
:rdx 0x24985f0 38372848
:rsi 0xffffffff00000000 -4294967296
:rdi 0xffffffff00000000 -4294967296
:rbp 0x0 0x0
:rsp 0x7fff32ca8828 0x7fff32ca8828
:r8 0x3d65516788 263692838792
:r9 0x7d7 2007
:r10 0x1 1
:r11 0x1 1
:r12 0x7f6684003410 140078277997584
:r13 0x0 0
:r14 0x3d65515c50 263692835920
:r15 0x7f66840008c0 140078277986496
:rip 0x3d6327b08c 0x3d6327b08c <__GI___libc_free+28>
:eflags 0x10286 [ PF SF IF RF ]
:cs 0x33 51
:ss 0x2b 43
:ds 0x0 0
:es 0x0 0
:fs 0x0 0
:gs 0x0 0
:Dump of assembler code for function __GI___libc_free:
: 0x0000003d6327b070 <+0>: mov 0x316ef9(%rip),%rax # 0x3d63591f70
: 0x0000003d6327b077 <+7>: mov (%rax),%rax
: 0x0000003d6327b07a <+10>: test %rax,%rax
: 0x0000003d6327b07d <+13>: jne 0x3d6327b142 <__GI___libc_free+210>
: 0x0000003d6327b083 <+19>: test %rdi,%rdi
: 0x0000003d6327b086 <+22>: je 0x3d6327b140 <__GI___libc_free+208>
:=> 0x0000003d6327b08c <+28>: mov -0x8(%rdi),%rax
: 0x0000003d6327b090 <+32>: lea -0x10(%rdi),%rsi
: 0x0000003d6327b094 <+36>: test $0x2,%al
: 0x0000003d6327b096 <+38>: jne 0x3d6327b0c0 <__GI___libc_free+80>
: 0x0000003d6327b098 <+40>: test $0x4,%al
: 0x0000003d6327b09a <+42>: lea 0x31913f(%rip),%rdi # 0x3d635941e0
<main_arena>
: 0x0000003d6327b0a1 <+49>: je 0x3d6327b0af <__GI___libc_free+63>
: 0x0000003d6327b0a3 <+51>: mov %rsi,%rax
: 0x0000003d6327b0a6 <+54>: and $0xfffffffffc000000,%rax
: 0x0000003d6327b0ac <+60>: mov (%rax),%rdi
: 0x0000003d6327b0af <+63>: xor %edx,%edx
: 0x0000003d6327b0b1 <+65>: jmpq 0x3d632775e0 <_int_free>
: 0x0000003d6327b0b6 <+70>: nopw %cs:0x0(%rax,%rax,1)
: 0x0000003d6327b0c0 <+80>: mov 0x3199ee(%rip),%edx # 0x3d63594ab4
<mp_+52>
: 0x0000003d6327b0c6 <+86>: test %edx,%edx
: 0x0000003d6327b0c8 <+88>: jne 0x3d6327b100 <__GI___libc_free+144>
: 0x0000003d6327b0ca <+90>: cmp 0x3199bf(%rip),%rax # 0x3d63594a90
<mp_+16>
: 0x0000003d6327b0d1 <+97>: jbe 0x3d6327b100 <__GI___libc_free+144>
: 0x0000003d6327b0d3 <+99>: mov %rax,%rcx
: 0x0000003d6327b0d6 <+102>: and $0xfffffffffffffff8,%rcx
: 0x0000003d6327b0da <+106>: cmp $0x2000000,%rax
: 0x0000003d6327b0e0 <+112>: ja 0x3d6327b107 <__GI___libc_free+151>
: 0x0000003d6327b0e2 <+114>: lea (%rcx,%rcx,1),%rax
: 0x0000003d6327b0e6 <+118>: mov %rcx,0x3199a3(%rip) # 0x3d63594a90
<mp_+16>
: 0x0000003d6327b0ed <+125>: mov %rax,0x31998c(%rip) # 0x3d63594a80
<mp_>
: 0x0000003d6327b0f4 <+132>: jmp 0x3d6327b107 <__GI___libc_free+151>
: 0x0000003d6327b0f6 <+134>: nopw %cs:0x0(%rax,%rax,1)
: 0x0000003d6327b100 <+144>: mov %rax,%rcx
: 0x0000003d6327b103 <+147>: and $0xfffffffffffffff8,%rcx
: 0x0000003d6327b107 <+151>: mov -0x10(%rdi),%rdx
: 0x0000003d6327b10b <+155>: mov %rsi,%rax
: 0x0000003d6327b10e <+158>: sub %rdx,%rax
: 0x0000003d6327b111 <+161>: lea (%rcx,%rdx,1),%rsi
: 0x0000003d6327b115 <+165>: mov 0x31999d(%rip),%edx # 0x3d63594ab8
<mp_+56>
: 0x0000003d6327b11b <+171>: mov %rsi,%rcx
: 0x0000003d6327b11e <+174>: or %rax,%rcx
: 0x0000003d6327b121 <+177>: sub $0x1,%edx
: 0x0000003d6327b124 <+180>: test %rdx,%rcx
: 0x0000003d6327b127 <+183>: jne 0x3d6327b148 <__GI___libc_free+216>
: 0x0000003d6327b129 <+185>: mov %rax,%rdi
: 0x0000003d6327b12c <+188>: subl $0x1,0x319975(%rip) # 0x3d63594aa8
<mp_+40>
: 0x0000003d6327b133 <+195>: sub %rsi,0x319986(%rip) # 0x3d63594ac0
<mp_+64>
: 0x0000003d6327b13a <+202>: jmpq 0x3d632dc4a0 <munmap>
: 0x0000003d6327b13f <+207>: nop
: 0x0000003d6327b140 <+208>: repz retq
: 0x0000003d6327b142 <+210>: mov (%rsp),%rsi
: 0x0000003d6327b146 <+214>: jmpq *%rax
: 0x0000003d6327b148 <+216>: mov %rdi,%rdx
: 0x0000003d6327b14b <+219>: mov 0x316fcf(%rip),%edi # 0x3d63592120
<check_action>
: 0x0000003d6327b151 <+225>: lea 0xe1180(%rip),%rsi # 0x3d6335c2d8
: 0x0000003d6327b158 <+232>: jmpq 0x3d63276f80 <malloc_printerr>
:End of assembler dump.
dso_list:
:/lib64/libudev.so.0.11.1 libudev-167-4.fc15.x86_64 (Fedora Project) 1308411518
:/usr/lib64/imsettings/libimsettings-qt.so imsettings-qt-1.2.3-1.fc15.x86_64
(Fedora Project) 1307098735
:/lib64/librt-2.14.so glibc-2.14-4.x86_64 (Fedora Project) 1309520363
:/lib64/libresolv-2.14.so glibc-2.14-4.x86_64 (Fedora Project) 1309520363
:/lib64/libglib-2.0.so.0.2800.8 glib2-2.28.8-1.fc15.x86_64 (Fedora Project)
1307336787
:/usr/lib64/libgvfscommon.so.0.0.0 gvfs-1.8.2-1.fc15.x86_64 (Fedora Project)
1307529950
:/lib64/libgcc_s-4.6.0-20110603.so.1 libgcc-4.6.0-10.fc15.x86_64 (Fedora
Project) 1307529928
:/lib64/libdl-2.14.so glibc-2.14-4.x86_64 (Fedora Project) 1309520363
:/usr/lib64/gconv/gconv-modules.cache glibc-2.14-4.x86_64 (Fedora Project)
1309520363
:/usr/lib64/libgdk_pixbuf-2.0.so.0.2300.3 gdk-pixbuf2-2.23.3-2.fc15.x86_64
(Fedora Project) 1309184022
:/usr/lib64/libnotify.so.4.0.0 libnotify-0.7.3-1.fc15.x86_64 (Fedora Project)
1307529992
:/lib64/libgthread-2.0.so.0.2800.8 glib2-2.28.8-1.fc15.x86_64 (Fedora Project)
1307336787
:/usr/lib64/gio/modules/libdconfsettings.so dconf-0.7.5-1.x86_64 (Fedora
Project) 1305031376
:/usr/lib64/gio/modules/libgvfsdbus.so gvfs-1.8.2-1.fc15.x86_64 (Fedora
Project) 1307529950
:/lib64/libdbus-1.so.3.5.4 dbus-libs-1:1.4.6-4.fc15.x86_64 (Fedora Project)
1304421501
:/lib64/libm-2.14.so glibc-2.14-4.x86_64 (Fedora Project) 1309520363
:/lib64/ld-2.14.so glibc-2.14-4.x86_64 (Fedora Project) 1309520363
:/lib64/libgio-2.0.so.0.2800.8 glib2-2.28.8-1.fc15.x86_64 (Fedora Project)
1307336787
:/usr/lib64/gio/modules/libgioremote-volume-monitor.so gvfs-1.8.2-1.fc15.x86_64
(Fedora Project) 1307529950
:/lib64/libnss_files-2.14.so glibc-2.14-4.x86_64 (Fedora Project) 1309520363
:/lib64/libpthread-2.14.so glibc-2.14-4.x86_64 (Fedora Project) 1309520363
:/lib64/libc-2.14.so glibc-2.14-4.x86_64 (Fedora Project) 1309520363
:/lib64/libexpat.so.1.5.2 expat-2.0.1-11.fc15.x86_64 (Fedora Project)
1304094950
:/lib64/libgmodule-2.0.so.0.2800.8 glib2-2.28.8-1.fc15.x86_64 (Fedora Project)
1307336787
:/lib64/libz.so.1.2.5 zlib-1.2.5-3.fc15.x86_64 (Fedora Project) 1304094942
:/usr/lib64/libimsettings.so.5.1.0 imsettings-libs-1.2.3-1.fc15.x86_64 (Fedora
Project) 1307098632
:/lib64/libutil-2.14.so glibc-2.14-4.x86_64 (Fedora Project) 1309520363
:/usr/libexec/imsettings-daemon imsettings-1.2.3-1.fc15.x86_64 (Fedora Project)
1307098648
:/usr/lib64/imsettings/libimsettings-gsettings.so
imsettings-gnome-1.2.3-1.fc15.x86_64 (Fedora Project) 1307098645
:/usr/lib64/libpng12.so.0.44.0 libpng-2:1.2.44-3.fc15.x86_64 (Fedora Project)
1304094943
:/lib64/libselinux.so.1 libselinux-2.0.99-4.fc15.x86_64 (Fedora Project)
1304094962
:/lib64/libgobject-2.0.so.0.2800.8 glib2-2.28.8-1.fc15.x86_64 (Fedora Project)
1307336787
environ:
:SHELL=/bin/bash
:DBUS_STARTER_ADDRESS=unix:abstract=/tmp/dbus-mY9wTxAqCy,guid=508686de73cc7a81703e886200000078
:XDG_SESSION_COOKIE=feee65cb7d14ed67ac52ea6b0000001a-1309964134.146742-694311730
:XDG_RUNTIME_DIR=/run/user/chendongsh
:DISPLAY=:0
:DESKTOP_SESSION=gnome
:WINDOWPATH=1
:PATH=/usr/local/bin:/usr/bin:/bin
:GDMSESSION=gnome
:USERNAME=chendongsh
:XDG_SESSION_ID=1
:DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-mY9wTxAqCy,guid=508686de73cc7a81703e886200000078
:XAUTHORITY=/var/run/gdm/auth-for-chendongsh-dGcGGA/database
:USER=chendongsh
:DBUS_STARTER_BUS_TYPE=session
:GNOME_KEYRING_PID=1979
:SHLVL=1
:PWD=/home/chendongsh
:GDM_LANG=
:GNOME_KEYRING_CONTROL=/tmp/keyring-P3vI6e
:LANG=en_US.UTF-8
:_=/usr/bin/dbus-launch
:LOGNAME=chendongsh
:HOME=/home/chendongsh
maps:
:00400000-0040c000 r-xp 00000000 00:13 5163595
/usr/libexec/imsettings-daemon
:0060c000-0060f000 rw-p 0000c000 00:13 5163595
/usr/libexec/imsettings-daemon
:0245e000-024b2000 rw-p 00000000 00:00 0
[heap]
:3d62e00000-3d62e1f000 r-xp 00000000 00:13 5160206
/lib64/ld-2.14.so
:3d6301e000-3d6301f000 r--p 0001e000 00:13 5160206
/lib64/ld-2.14.so
:3d6301f000-3d63020000 rw-p 0001f000 00:13 5160206
/lib64/ld-2.14.so
:3d63020000-3d63021000 rw-p 00000000 00:00 0
:3d63200000-3d6338f000 r-xp 00000000 00:13 5160207
/lib64/libc-2.14.so
:3d6338f000-3d6358e000 ---p 0018f000 00:13 5160207
/lib64/libc-2.14.so
:3d6358e000-3d63592000 r--p 0018e000 00:13 5160207
/lib64/libc-2.14.so
:3d63592000-3d63593000 rw-p 00192000 00:13 5160207
/lib64/libc-2.14.so
:3d63593000-3d63599000 rw-p 00000000 00:00 0
:3d63600000-3d63602000 r-xp 00000000 00:13 5160210
/lib64/libdl-2.14.so
:3d63602000-3d63802000 ---p 00002000 00:13 5160210
/lib64/libdl-2.14.so
:3d63802000-3d63803000 r--p 00002000 00:13 5160210
/lib64/libdl-2.14.so
:3d63803000-3d63804000 rw-p 00003000 00:13 5160210
/lib64/libdl-2.14.so
:3d63a00000-3d63a16000 r-xp 00000000 00:13 5160208
/lib64/libpthread-2.14.so
:3d63a16000-3d63c15000 ---p 00016000 00:13 5160208
/lib64/libpthread-2.14.so
:3d63c15000-3d63c16000 r--p 00015000 00:13 5160208
/lib64/libpthread-2.14.so
:3d63c16000-3d63c17000 rw-p 00016000 00:13 5160208
/lib64/libpthread-2.14.so
:3d63c17000-3d63c1b000 rw-p 00000000 00:00 0
:3d63e00000-3d63e83000 r-xp 00000000 00:13 5160236
/lib64/libm-2.14.so
:3d63e83000-3d64082000 ---p 00083000 00:13 5160236
/lib64/libm-2.14.so
:3d64082000-3d64083000 r--p 00082000 00:13 5160236
/lib64/libm-2.14.so
:3d64083000-3d64084000 rw-p 00083000 00:13 5160236
/lib64/libm-2.14.so
:3d64200000-3d64215000 r-xp 00000000 00:13 5160237
/lib64/libgcc_s-4.6.0-20110603.so.1
:3d64215000-3d64414000 ---p 00015000 00:13 5160237
/lib64/libgcc_s-4.6.0-20110603.so.1
:3d64414000-3d64415000 rw-p 00014000 00:13 5160237
/lib64/libgcc_s-4.6.0-20110603.so.1
:3d64600000-3d64607000 r-xp 00000000 00:13 5160209
/lib64/librt-2.14.so
:3d64607000-3d64806000 ---p 00007000 00:13 5160209
/lib64/librt-2.14.so
:3d64806000-3d64807000 r--p 00006000 00:13 5160209
/lib64/librt-2.14.so
:3d64807000-3d64808000 rw-p 00007000 00:13 5160209
/lib64/librt-2.14.so
:3d64a00000-3d64a16000 r-xp 00000000 00:13 5160228
/lib64/libz.so.1.2.5
:3d64a16000-3d64c16000 ---p 00016000 00:13 5160228
/lib64/libz.so.1.2.5
:3d64c16000-3d64c17000 rw-p 00016000 00:13 5160228
/lib64/libz.so.1.2.5
:3d64e00000-3d64e1d000 r-xp 00000000 00:13 5160218
/lib64/libselinux.so.1
:3d64e1d000-3d6501c000 ---p 0001d000 00:13 5160218
/lib64/libselinux.so.1
:3d6501c000-3d6501d000 r--p 0001c000 00:13 5160218
/lib64/libselinux.so.1
:3d6501d000-3d6501e000 rw-p 0001d000 00:13 5160218
/lib64/libselinux.so.1
:3d6501e000-3d6501f000 rw-p 00000000 00:00 0
:3d65200000-3d65315000 r-xp 00000000 00:13 5160224
/lib64/libglib-2.0.so.0.2800.8
:3d65315000-3d65515000 ---p 00115000 00:13 5160224
/lib64/libglib-2.0.so.0.2800.8
:3d65515000-3d65516000 rw-p 00115000 00:13 5160224
/lib64/libglib-2.0.so.0.2800.8
:3d65516000-3d65517000 rw-p 00000000 00:00 0
:3d65600000-3d65617000 r-xp 00000000 00:13 5160217
/lib64/libresolv-2.14.so
:3d65617000-3d65817000 ---p 00017000 00:13 5160217
/lib64/libresolv-2.14.so
:3d65817000-3d65818000 r--p 00017000 00:13 5160217
/lib64/libresolv-2.14.so
:3d65818000-3d65819000 rw-p 00018000 00:13 5160217
/lib64/libresolv-2.14.so
:3d65819000-3d6581b000 rw-p 00000000 00:00 0
:3d65a00000-3d65a04000 r-xp 00000000 00:13 5160225
/lib64/libgthread-2.0.so.0.2800.8
:3d65a04000-3d65c03000 ---p 00004000 00:13 5160225
/lib64/libgthread-2.0.so.0.2800.8
:3d65c03000-3d65c04000 rw-p 00003000 00:13 5160225
/lib64/libgthread-2.0.so.0.2800.8
:3d66200000-3d66217000 r-xp 00000000 00:13 5160502
/usr/lib64/libgvfscommon.so.0.0.0
:3d66217000-3d66416000 ---p 00017000 00:13 5160502
/usr/lib64/libgvfscommon.so.0.0.0
:3d66416000-3d66418000 rw-p 00016000 00:13 5160502
/usr/lib64/libgvfscommon.so.0.0.0
:3d66a00000-3d66a4c000 r-xp 00000000 00:13 5160226
/lib64/libgobject-2.0.so.0.2800.8
:3d66a4c000-3d66c4b000 ---p 0004c000 00:13 5160226
/lib64/libgobject-2.0.so.0.2800.8
:3d66c4b000-3d66c4d000 rw-p 0004b000 00:13 5160226
/lib64/libgobject-2.0.so.0.2800.8
:3d66c4d000-3d66c4e000 rw-p 00000000 00:00 0
:3d67200000-3d67227000 r-xp 00000000 00:13 5160243
/lib64/libexpat.so.1.5.2
:3d67227000-3d67426000 ---p 00027000 00:13 5160243
/lib64/libexpat.so.1.5.2
:3d67426000-3d67429000 rw-p 00026000 00:13 5160243
/lib64/libexpat.so.1.5.2
:3d67600000-3d67626000 r-xp 00000000 00:13 5160255
/usr/lib64/libpng12.so.0.44.0
:3d67626000-3d67826000 ---p 00026000 00:13 5160255
/usr/lib64/libpng12.so.0.44.0
:3d67826000-3d67827000 rw-p 00026000 00:13 5160255
/usr/lib64/libpng12.so.0.44.0
:3d67e00000-3d67e0a000 r-xp 00000000 00:13 5161132
/usr/lib64/libimsettings.so.5.1.0
:3d67e0a000-3d68009000 ---p 0000a000 00:13 5161132
/usr/lib64/libimsettings.so.5.1.0
:3d68009000-3d6800a000 rw-p 00009000 00:13 5161132
/usr/lib64/libimsettings.so.5.1.0
:3d68600000-3d68603000 r-xp 00000000 00:13 5160227
/lib64/libgmodule-2.0.so.0.2800.8
:3d68603000-3d68802000 ---p 00003000 00:13 5160227
/lib64/libgmodule-2.0.so.0.2800.8
:3d68802000-3d68803000 rw-p 00002000 00:13 5160227
/lib64/libgmodule-2.0.so.0.2800.8
:3d69600000-3d69721000 r-xp 00000000 00:13 5160229
/lib64/libgio-2.0.so.0.2800.8
:3d69721000-3d69920000 ---p 00121000 00:13 5160229
/lib64/libgio-2.0.so.0.2800.8
:3d69920000-3d69926000 rw-p 00120000 00:13 5160229
/lib64/libgio-2.0.so.0.2800.8
:3d69926000-3d69927000 rw-p 00000000 00:00 0
:3d6b200000-3d6b242000 r-xp 00000000 00:13 5160293
/lib64/libdbus-1.so.3.5.4
:3d6b242000-3d6b442000 ---p 00042000 00:13 5160293
/lib64/libdbus-1.so.3.5.4
:3d6b442000-3d6b443000 r--p 00042000 00:13 5160293
/lib64/libdbus-1.so.3.5.4
:3d6b443000-3d6b444000 rw-p 00043000 00:13 5160293
/lib64/libdbus-1.so.3.5.4
:3d6b600000-3d6b621000 r-xp 00000000 00:13 5160271
/usr/lib64/libgdk_pixbuf-2.0.so.0.2300.3
:3d6b621000-3d6b821000 ---p 00021000 00:13 5160271
/usr/lib64/libgdk_pixbuf-2.0.so.0.2300.3
:3d6b821000-3d6b822000 rw-p 00021000 00:13 5160271
/usr/lib64/libgdk_pixbuf-2.0.so.0.2300.3
:3d71e00000-3d71e0e000 r-xp 00000000 00:13 5160466
/lib64/libudev.so.0.11.1
:3d71e0e000-3d7200d000 ---p 0000e000 00:13 5160466
/lib64/libudev.so.0.11.1
:3d7200d000-3d7200e000 r--p 0000d000 00:13 5160466
/lib64/libudev.so.0.11.1
:3d7200e000-3d7200f000 rw-p 0000e000 00:13 5160466
/lib64/libudev.so.0.11.1
:3d77a00000-3d77a06000 r-xp 00000000 00:13 5160431
/usr/lib64/libnotify.so.4.0.0
:3d77a06000-3d77c06000 ---p 00006000 00:13 5160431
/usr/lib64/libnotify.so.4.0.0
:3d77c06000-3d77c07000 rw-p 00006000 00:13 5160431
/usr/lib64/libnotify.so.4.0.0
:3d7b000000-3d7b002000 r-xp 00000000 00:13 5160230
/lib64/libutil-2.14.so
:3d7b002000-3d7b201000 ---p 00002000 00:13 5160230
/lib64/libutil-2.14.so
:3d7b201000-3d7b202000 r--p 00001000 00:13 5160230
/lib64/libutil-2.14.so
:3d7b202000-3d7b203000 rw-p 00002000 00:13 5160230
/lib64/libutil-2.14.so
:7f667c000000-7f667c022000 rw-p 00000000 00:00 0
:7f667c022000-7f6680000000 ---p 00000000 00:00 0
:7f66837ff000-7f6683800000 ---p 00000000 00:00 0
:7f6683800000-7f6684000000 rw-p 00000000 00:00 0
:7f6684000000-7f6684021000 rw-p 00000000 00:00 0
:7f6684021000-7f6688000000 ---p 00000000 00:00 0
:7f66885e8000-7f66885ee000 r--p 00000000 00:13 5318046
/home/chendongsh/.config/dconf/user
:7f66885ee000-7f66885f6000 r-xp 00000000 00:13 627287
/usr/lib64/gio/modules/libdconfsettings.so
:7f66885f6000-7f66887f5000 ---p 00008000 00:13 627287
/usr/lib64/gio/modules/libdconfsettings.so
:7f66887f5000-7f66887f6000 rw-p 00007000 00:13 627287
/usr/lib64/gio/modules/libdconfsettings.so
:7f66887f6000-7f6688815000 r--p 00000000 00:13 5315996
/usr/share/glib-2.0/schemas/gschemas.compiled
:7f6688815000-7f6688817000 r-xp 00000000 00:13 4637465
/usr/lib64/imsettings/libimsettings-qt.so
:7f6688817000-7f6688a16000 ---p 00002000 00:13 4637465
/usr/lib64/imsettings/libimsettings-qt.so
:7f6688a16000-7f6688a17000 rw-p 00001000 00:13 4637465
/usr/lib64/imsettings/libimsettings-qt.so
:7f6688a17000-7f6688a18000 r-xp 00000000 00:13 4630636
/usr/lib64/imsettings/libimsettings-gsettings.so
:7f6688a18000-7f6688c17000 ---p 00001000 00:13 4630636
/usr/lib64/imsettings/libimsettings-gsettings.so
:7f6688c17000-7f6688c18000 rw-p 00000000 00:13 4630636
/usr/lib64/imsettings/libimsettings-gsettings.so
:7f6688c18000-7f6688c24000 r-xp 00000000 00:13 5126849
/lib64/libnss_files-2.14.so
:7f6688c24000-7f6688e23000 ---p 0000c000 00:13 5126849
/lib64/libnss_files-2.14.so
:7f6688e23000-7f6688e24000 r--p 0000b000 00:13 5126849
/lib64/libnss_files-2.14.so
:7f6688e24000-7f6688e25000 rw-p 0000c000 00:13 5126849
/lib64/libnss_files-2.14.so
:7f6688e25000-7f6688e4e000 r-xp 00000000 00:13 4720367
/usr/lib64/gio/modules/libgvfsdbus.so
:7f6688e4e000-7f668904d000 ---p 00029000 00:13 4720367
/usr/lib64/gio/modules/libgvfsdbus.so
:7f668904d000-7f668904f000 rw-p 00028000 00:13 4720367
/usr/lib64/gio/modules/libgvfsdbus.so
:7f668904f000-7f6689062000 r-xp 00000000 00:13 4720366
/usr/lib64/gio/modules/libgioremote-volume-monitor.so
:7f6689062000-7f6689262000 ---p 00013000 00:13 4720366
/usr/lib64/gio/modules/libgioremote-volume-monitor.so
:7f6689262000-7f6689263000 rw-p 00013000 00:13 4720366
/usr/lib64/gio/modules/libgioremote-volume-monitor.so
:7f6689263000-7f6689264000 ---p 00000000 00:00 0
:7f6689264000-7f6689a6d000 rw-p 00000000 00:00 0
:7f6689a6f000-7f6689a70000 r--s 00000000 00:13 5318048
/home/chendongsh/.cache/dconf/user
:7f6689a70000-7f6689a71000 rw-p 00000000 00:00 0
:7f6689a71000-7f6689a8e000 r--s 00000000 00:13 5291012
/usr/share/mime/mime.cache
:7f6689a8e000-7f6689a8f000 r--s 00000000 00:13 3780451
/home/chendongsh/.local/share/mime/mime.cache
:7f6689a8f000-7f6689a96000 r--s 00000000 00:13 5127144
/usr/lib64/gconv/gconv-modules.cache
:7f6689a96000-7f6689a97000 rw-p 00000000 00:00 0
:7fff32c8a000-7fff32cab000 rw-p 00000000 00:00 0
[stack]
:7fff32da8000-7fff32da9000 r-xp 00000000 00:00 0
[vdso]
:ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0
[vsyscall]
--
Configure bugmail: https://bugzilla.redhat.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
12 years, 9 months