From fa98a30c5bf2e4fc815abac1cb2a023206f0ae52 Mon Sep 17 00:00:00 2001 From: Daiki Ueno Date: May 11 2011 09:32:06 +0000 Subject: Merge branch 'master' into f15 Conflicts: ibus-hangul.spec --- diff --git a/ibus-hangul-gvariant.patch b/ibus-hangul-gvariant.patch deleted file mode 100644 index 7250459..0000000 --- a/ibus-hangul-gvariant.patch +++ /dev/null @@ -1,92 +0,0 @@ -From de6027f586e0e8052a7e23bbe58b35eb419e971f Mon Sep 17 00:00:00 2001 -From: Daiki Ueno -Date: Mon, 8 Nov 2010 14:12:35 +0900 -Subject: [PATCH] Fix problem with ibus-1.4. - ---- - src/engine.c | 29 ++++++++++++----------------- - 1 files changed, 12 insertions(+), 17 deletions(-) - -diff --git a/src/engine.c b/src/engine.c -index 6b0cec9..cba09df 100644 ---- a/src/engine.c -+++ b/src/engine.c -@@ -111,7 +111,7 @@ static void ibus_hangul_engine_update_lookup_table - static void ibus_config_value_changed (IBusConfig *config, - const gchar *section, - const gchar *name, -- GValue *value, -+ GVariant *value, - gpointer user_data); - - static void lookup_table_set_visible (IBusLookupTable *table, -@@ -174,8 +174,7 @@ ibus_hangul_engine_get_type (void) - void - ibus_hangul_init (IBusBus *bus) - { -- gboolean res; -- GValue value = { 0, }; -+ GVariant *value = NULL; - - hanja_table = hanja_table_load (NULL); - -@@ -186,22 +185,18 @@ ibus_hangul_init (IBusBus *bus) - g_object_ref_sink (config); - - hangul_keyboard = g_string_new_len ("2", 8); -- res = ibus_config_get_value (config, "engine/Hangul", -- "HangulKeyboard", &value); -- if (res) { -- const gchar* str = g_value_get_string (&value); -+ value = ibus_config_get_value (config, "engine/Hangul", "HangulKeyboard"); -+ if (value) { -+ const gchar* str = g_variant_get_string (value, NULL); - g_string_assign (hangul_keyboard, str); -- g_value_unset(&value); - } - - hanja_key_list_init(&hanja_keys); - -- res = ibus_config_get_value (config, "engine/Hangul", -- "HanjaKeys", &value); -- if (res) { -- const gchar* str = g_value_get_string (&value); -+ value = ibus_config_get_value (config, "engine/Hangul", "HanjaKeys"); -+ if (value) { -+ const gchar* str = g_variant_get_string (value, NULL); - hanja_key_list_set_from_string(&hanja_keys, str); -- g_value_unset(&value); - } else { - hanja_key_list_append(&hanja_keys, IBUS_Hangul_Hanja, 0); - hanja_key_list_append(&hanja_keys, IBUS_F9, 0); -@@ -949,23 +944,23 @@ static void - ibus_config_value_changed (IBusConfig *config, - const gchar *section, - const gchar *name, -- GValue *value, -+ GVariant *value, - gpointer user_data) - { - IBusHangulEngine *hangul = (IBusHangulEngine *) user_data; - - if (strcmp(section, "engine/Hangul") == 0) { - if (strcmp(name, "HangulKeyboard") == 0) { -- const gchar *str = g_value_get_string (value); -+ const gchar *str = g_variant_get_string (value, NULL); - g_string_assign (hangul_keyboard, str); - hangul_ic_select_keyboard (hangul->context, hangul_keyboard->str); - } else if (strcmp(name, "HanjaKeys") == 0) { -- const gchar* str = g_value_get_string (value); -+ const gchar* str = g_variant_get_string (value, NULL); - hanja_key_list_set_from_string(&hanja_keys, str); - } - } else if (strcmp(section, "panel") == 0) { - if (strcmp(name, "lookup_table_orientation") == 0) { -- lookup_table_orientation = g_value_get_int (value); -+ lookup_table_orientation = g_variant_get_int32 (value); - } - } - } --- -1.7.3.2 - diff --git a/ibus-hangul-ibus-1.4.patch b/ibus-hangul-ibus-1.4.patch new file mode 100644 index 0000000..25a6f12 --- /dev/null +++ b/ibus-hangul-ibus-1.4.patch @@ -0,0 +1,155 @@ +From 6ce58d1d79e5b175865ee26794e9fc7ce576ce56 Mon Sep 17 00:00:00 2001 +From: Daiki Ueno +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 + static void ibus_config_value_changed (IBusConfig *config, + const gchar *section, + const gchar *name, ++#if IBUS_CHECK_VERSION(1,3,99) ++ GVariant *value, ++#else + GValue *value, ++#endif /* !IBUS_CHECK_VERSION(1,3,99) */ + gpointer user_data); + + static void lookup_table_set_visible (IBusLookupTable *table, +@@ -136,6 +140,11 @@ static gboolean hanja_key_list_match (HanjaKeyList *list, + static gboolean hanja_key_list_has_modifier (HanjaKeyList *list, + guint keyval); + ++static gboolean config_get_string (IBusConfig *config, ++ const gchar *section, ++ const gchar *name, ++ gchar **result); ++ + static IBusEngineClass *parent_class = NULL; + static HanjaTable *hanja_table = NULL; + static HanjaTable *symbol_table = NULL; +@@ -176,7 +185,7 @@ void + ibus_hangul_init (IBusBus *bus) + { + gboolean res; +- GValue value = { 0, }; ++ gchar *str; + + hanja_table = hanja_table_load (NULL); + +@@ -187,22 +196,20 @@ ibus_hangul_init (IBusBus *bus) + g_object_ref_sink (config); + + hangul_keyboard = g_string_new_len ("2", 8); +- res = ibus_config_get_value (config, "engine/Hangul", +- "HangulKeyboard", &value); ++ str = NULL; ++ res = config_get_string (config, "engine/Hangul", "HangulKeyboard", &str); + if (res) { +- const gchar* str = g_value_get_string (&value); + g_string_assign (hangul_keyboard, str); +- g_value_unset(&value); ++ g_free (str); + } + + hanja_key_list_init(&hanja_keys); + +- res = ibus_config_get_value (config, "engine/Hangul", +- "HanjaKeys", &value); ++ str = NULL; ++ res = config_get_string (config, "engine/Hangul", "HanjaKeys", &str); + if (res) { +- const gchar* str = g_value_get_string (&value); + hanja_key_list_set_from_string(&hanja_keys, str); +- g_value_unset(&value); ++ g_free (str); + } 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, + } + } + ++static gboolean ++config_get_string (IBusConfig *config, ++ const gchar *section, ++ const gchar *name, ++ gchar **result) ++{ ++#if IBUS_CHECK_VERSION(1,3,99) ++ GVariant *value = NULL; ++ ++ g_return_val_if_fail (result != NULL, FALSE); ++ ++ value = ibus_config_get_value (config, section, name); ++ if (value) { ++ *result = g_strdup (g_variant_get_string (value, NULL)); ++ g_variant_unref (value); ++ return TRUE; ++ } ++ return FALSE; ++#else ++ GValue value = { 0 }; ++ ++ g_return_val_if_fail (result != NULL, FALSE); ++ ++ if (ibus_config_get_value (config, section, name, &value)) { ++ *result = g_strdup (g_value_get_string (&value)); ++ g_value_unset (&value); ++ return TRUE; ++ } ++ return FALSE; ++#endif /* !IBUS_CHECK_VERSION(1,3,99) */ ++} ++ ++#if IBUS_CHECK_VERSION(1,3,99) ++#define _g_variant_get_string g_variant_get_string ++#define _g_variant_get_int32 g_variant_get_int32 ++#else ++#define _g_variant_get_string(value, length) g_value_get_string(value) ++#define _g_variant_get_int32 g_value_get_int ++#endif /* !IBUS_CHECK_VERSION(1,3,99) */ ++ + static void + ibus_config_value_changed (IBusConfig *config, + const gchar *section, + const gchar *name, ++#if IBUS_CHECK_VERSION(1,3,99) ++ GVariant *value, ++#else + GValue *value, ++#endif /* !IBUS_CHECK_VERSION(1,3,99) */ + gpointer user_data) + { + IBusHangulEngine *hangul = (IBusHangulEngine *) user_data; + + if (strcmp(section, "engine/Hangul") == 0) { + if (strcmp(name, "HangulKeyboard") == 0) { +- const gchar *str = g_value_get_string (value); ++ const gchar *str = _g_variant_get_string (value, NULL); + g_string_assign (hangul_keyboard, str); + hangul_ic_select_keyboard (hangul->context, hangul_keyboard->str); + } else if (strcmp(name, "HanjaKeys") == 0) { +- const gchar* str = g_value_get_string (value); ++ const gchar* str = _g_variant_get_string (value, NULL); + hanja_key_list_set_from_string(&hanja_keys, str); + } + } else if (strcmp(section, "panel") == 0) { + if (strcmp(name, "lookup_table_orientation") == 0) { +- lookup_table_orientation = g_value_get_int (value); ++ lookup_table_orientation = _g_variant_get_int32 (value); + } + } + } +-- +1.7.5.1 + diff --git a/ibus-hangul.spec b/ibus-hangul.spec index 121d24f..0315252 100644 --- a/ibus-hangul.spec +++ b/ibus-hangul.spec @@ -3,15 +3,13 @@ Name: ibus-hangul Version: 1.3.1 -Release: 1%{?dist} +Release: 3%{?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 -Patch0: ibus-hangul-gvariant.patch - -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +Patch0: ibus-hangul-ibus-1.4.patch BuildRequires: gettext-devel BuildRequires: intltool @@ -29,7 +27,7 @@ libhangul. %prep %setup -q -%patch0 -p1 +%patch0 -p1 -b .ibus-1.4 %build %configure --disable-static @@ -37,14 +35,10 @@ libhangul. make %{?_smp_mflags} %install -rm -rf $RPM_BUILD_ROOT make DESTDIR=${RPM_BUILD_ROOT} install %find_lang %{name} -%clean -rm -rf $RPM_BUILD_ROOT - %files -f %{name}.lang %defattr(-,root,root,-) %doc AUTHORS COPYING README @@ -54,6 +48,15 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/ibus/component/* %changelog +* Wed May 11 2011 Daiki Ueno - 1.3.1-3 +- Update ibus-1.4 patch. +- Move the ibus version check into the patch from this spec. +- Fix bug 695971 - Hangul Keybaord Layout works to only dubeolsik + +* Mon Apr 4 2011 Daiki Ueno - 1.3.1-2 +- Apply ibus-1.4 patch conditionally for SRPM compatibility. +- Drop buildroot, %%clean and cleaning of buildroot in %%install + * Mon Feb 28 2011 Daiki Ueno - 1.3.1-1 - Update version to 1.3.1.