packages: ibus-hangul/ibus-hangul-ibus-1.4.patch (NEW), ibus-hangul/ibus-ha...

baggins baggins at pld-linux.org
Wed Jul 20 12:45:04 CEST 2011


Author: baggins                      Date: Wed Jul 20 10:45:04 2011 GMT
Module: packages                      Tag: HEAD
---- Log message:
- initial revision

---- Files affected:
packages/ibus-hangul:
   ibus-hangul-ibus-1.4.patch (NONE -> 1.1)  (NEW), ibus-hangul-xx-icon-symbol.patch (NONE -> 1.1)  (NEW), ibus-hangul.spec (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/ibus-hangul/ibus-hangul-ibus-1.4.patch
diff -u /dev/null packages/ibus-hangul/ibus-hangul-ibus-1.4.patch:1.1
--- /dev/null	Wed Jul 20 12:45:04 2011
+++ packages/ibus-hangul/ibus-hangul-ibus-1.4.patch	Wed Jul 20 12:44:59 2011
@@ -0,0 +1,142 @@
+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,
++#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    
+ 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 (IB
+     }
+ }
+ 
++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);
+         }
+     }
+ }

================================================================
Index: packages/ibus-hangul/ibus-hangul-xx-icon-symbol.patch
diff -u /dev/null packages/ibus-hangul/ibus-hangul-xx-icon-symbol.patch:1.1
--- /dev/null	Wed Jul 20 12:45:04 2011
+++ packages/ibus-hangul/ibus-hangul-xx-icon-symbol.patch	Wed Jul 20 12:44:59 2011
@@ -0,0 +1,86 @@
+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 symbol properties in component xml
++IBUS_WITH_HOTKEYS([Control+space,Hangul])
++IBUS_SET_SYMBOL([한])
++
+ 
+ # OUTPUT files
+ AC_CONFIG_FILES([ po/Makefile.in
+Index: ibus-hangul-1.3.1/m4/ibus.m4
+===================================================================
+--- /dev/null
++++ ibus-hangul-1.3.1/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-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>
++			@IBUS_HOTKEYS_XML@
++			@IBUS_SYMBOL_XML@
+ 		</engine>
+ 	</engines>
+ 

================================================================
Index: packages/ibus-hangul/ibus-hangul.spec
diff -u /dev/null packages/ibus-hangul/ibus-hangul.spec:1.1
--- /dev/null	Wed Jul 20 12:45:04 2011
+++ packages/ibus-hangul/ibus-hangul.spec	Wed Jul 20 12:44:59 2011
@@ -0,0 +1,73 @@
+# $Revision$, $Date$
+#
+# Conditional build:
+%bcond_with	bridge_hotkey		# enable the engine hotkeys
+#
+Summary:	The Hangul engine for IBus input platform
+Name:		ibus-hangul
+Version:	1.3.1
+Release:	0.1
+License:	GPL v2+
+Group:		Libraries
+Source0:	http://ibus.googlecode.com/files/%{name}-%{version}.tar.gz
+# Source0-md5:	b71565bba3a1439a47212611b774ecf7
+Patch0:		%{name}-ibus-1.4.patch
+Patch1:		%{name}-xx-icon-symbol.patch
+URL:		http://code.google.com/p/ibus/
+BuildRequires:	gettext-devel
+BuildRequires:  ibus
+BuildRequires:	ibus-devel >= 1.3.0
+BuildRequires:	intltool
+BuildRequires:	libhangul-devel >= 0.0.10
+BuildRequires:	libtool
+BuildRequires:	pkgconfig
+Requires:	ibus >= 1.3.0
+Requires:	libhangul >= 0.0.10
+
+%define		_libexecdir	%{_libdir}/ibus
+
+%description
+The Hangul engine for IBus platform. It provides Korean input method
+from libhangul.
+
+%prep
+%setup -q
+%patch0 -p1
+%patch1 -p1
+
+%build
+%{__aclocal} -I m4
+%{__autoconf}
+%configure \
+	%{?with_bridge_hotkey:--with-hotkeys}
+
+%{__make}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+%{__make} install \
+	DESTDIR=$RPM_BUILD_ROOT
+
+%find_lang %{name}
+
+%files -f %{name}.lang
+%defattr(644,root,root,755)
+%doc AUTHORS ChangeLog NEWS README
+%{_libexecdir}/ibus-engine-hangul
+%{_libexecdir}/ibus-setup-hangul
+%{_datadir}/ibus-hangul
+%{_datadir}/ibus/component/*
+
+%define date	%(echo `LC_ALL="C" date +"%a %b %d %Y"`)
+%changelog
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+* %{date} PLD Team <feedback at pld-linux.org>
+All persons listed below can be reached at <cvs_login>@pld-linux.org
+
+$Log$
+Revision 1.1  2011/07/20 10:44:59  baggins
+- initial revision
+
================================================================


More information about the pld-cvs-commit mailing list