[packages/ibus] - updated to stable 1.4.2 + ibus-gjs 3.4.1.20120815 - updated xx-bridge-hotkey,xkb patches - removed
qboosh
qboosh at pld-linux.org
Wed Sep 5 18:38:43 CEST 2012
commit 36809d14cec32af4409348bafd02b19b453147cf
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Wed Sep 5 18:38:54 2012 +0200
- updated to stable 1.4.2 + ibus-gjs 3.4.1.20120815
- updated xx-bridge-hotkey,xkb patches
- removed obsolete HEAD,711632-fedora-fallback-icon patches
- separated python-,vala-,-static,-apidocs packages
ibus-541492-xkb.patch | 2 +-
ibus-711632-fedora-fallback-icon.patch | 23 --
ibus-HEAD.patch | 696 ---------------------------------
ibus-xx-bridge-hotkey.patch | 8 +-
ibus.spec | 240 ++++++++----
5 files changed, 169 insertions(+), 800 deletions(-)
---
diff --git a/ibus.spec b/ibus.spec
index 1851f9f..ae782e3 100644
--- a/ibus.spec
+++ b/ibus.spec
@@ -1,63 +1,62 @@
# TODO
-# - clean .py
+# - clean .py in %{_datadir}/{setup,ui/gtk} if possible
#
# Conditional build:
%bcond_without gjsfile # https://bugzilla.redhat.com/show_bug.cgi?id=657165
-
-%define ibus_gjs_version 3.1.4.20110823
+%bcond_without static_libs # don't build static library
+#
+%define ibus_gjs_version 3.4.1.20120815
Summary: Intelligent Input Bus for Linux OS
+Summary(pl.UTF-8): IBus - inteligentna szyna wejściowa dla Linuksa
Name: ibus
-Version: 1.3.99.20110817
+Version: 1.4.2
Release: 1
License: LGPL v2+
Group: Libraries
-URL: http://code.google.com/p/ibus/
+#Source0Download: http://code.google.com/p/ibus/downloads/list
Source0: http://ibus.googlecode.com/files/%{name}-%{version}.tar.gz
-# Source0-md5: 52614e55e966b7c7101a19b276c51f10
+# Source0-md5: 4cc29edea599d465e1ee53c39da27a57
Source1: %{name}.xinputd
Source100: http://fujiwara.fedorapeople.org/ibus/gnome-shell/%{name}-gjs-%{ibus_gjs_version}.tar.gz
-# Source100-md5: e97be8e1d0b22531b5000d4a6349dbbe
-Patch0: %{name}-HEAD.patch
-Patch1: %{name}-530711-preload-sys.patch
-Patch2: %{name}-541492-xkb.patch
-Patch3: %{name}-xx-bridge-hotkey.patch
-Patch4: %{name}-xx-setup-frequent-lang.patch
-# Workaround for oxygen-gtk icon theme until bug 699103 is fixed.
-Patch91: %{name}-711632-fedora-fallback-icon.patch
-BuildRequires: GConf2-devel
-BuildRequires: autoconf
-BuildRequires: automake
-BuildRequires: dbus-glib-devel
+# Source100-md5: 8acf4ac4d1a7dfb9a0af9e755a8e7dba
+Patch0: %{name}-530711-preload-sys.patch
+Patch1: %{name}-541492-xkb.patch
+Patch2: %{name}-xx-bridge-hotkey.patch
+Patch3: %{name}-xx-setup-frequent-lang.patch
+URL: http://code.google.com/p/ibus/
+BuildRequires: GConf2-devel >= 2.12
+BuildRequires: autoconf >= 2.62
+BuildRequires: automake >= 1:1.10
BuildRequires: desktop-file-utils
BuildRequires: gettext-devel
-BuildRequires: gtk+2-devel
-BuildRequires: gtk+3-devel
-BuildRequires: gtk-doc
-BuildRequires: intltool
+BuildRequires: glib2-devel >= 1:2.26.0
+BuildRequires: gobject-introspection-devel >= 0.6.8
+BuildRequires: gtk+2-devel >= 2.0
+BuildRequires: gtk+3-devel >= 3.0
+BuildRequires: gtk-doc >= 1.9
+BuildRequires: intltool >= 0.35.0
BuildRequires: iso-codes
BuildRequires: libtool
-BuildRequires: python
+BuildRequires: python >= 1:2.5
BuildRequires: python-dbus-devel >= 0.83.0
BuildRequires: python-pygobject-devel
BuildRequires: rpm-pythonprov
BuildRequires: rpmbuild(macros) >= 1.596
+BuildRequires: xorg-lib-libX11-devel
BuildRequires: xorg-lib-libxkbfile-devel
-Requires: %{name}-gtk2 = %{version}-%{release}
-Requires: %{name}-gtk3 = %{version}-%{release}
Requires: %{name}-libs = %{version}-%{release}
-Requires: GConf2
+Requires: GConf2 >= 2.12
+Requires: dbus >= 1.2.4
Requires: gtk-update-icon-cache
Requires: hicolor-icon-theme
Requires: im-chooser
Requires: iso-codes
-Requires: python-dbus >= 0.83.0
+Requires: python-ibus = %{version}-%{release}
Requires: python-pygtk-gtk
Requires: python-pynotify
-Requires: python-pyxdg
# input-keyboard-symbolic icon
Suggests: gnome-icon-theme-symbolic
-Requires(post): GConf2
-Requires(preun): GConf2
+Requires(post,preun): GConf2
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _libexecdir %{_libdir}/ibus
@@ -66,42 +65,55 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
IBus means Intelligent Input Bus. It is an input framework for Linux
OS.
+%description -l pl.UTF-8
+IBus (Intelligent Input Bus) to inteligentna szyna wejściowa. Jest to
+szkielet wprowadzania tekstu dla Linuksa.
+
%package libs
-Summary: IBus libraries
+Summary: IBus library
+Summary(pl.UTF-8): Biblioteka IBus
Group: Libraries
-Requires: dbus >= 1.2.4
Requires: glib2 >= 1:2.26.0
%description libs
-This package contains the libraries for IBus
+This package contains the IBus shared library.
+
+%description libs -l pl.UTF-8
+Ten pakiet zawiera bibliotekę współdzieloną IBus.
%package gtk2
-Summary: IBus im module for gtk2
+Summary: IBus im module for GTK+ 2.x
+Summary(pl.UTF-8): Moduł im IBus dla GTK+ 2.x
Group: Libraries
Requires: %{name} = %{version}-%{release}
-Requires: %{name}-libs = %{version}-%{release}
Requires: imsettings-gnome2
Requires(post): glib2 >= 1:2.26.0
%description gtk2
-This package contains ibus im module for gtk2
+This package contains IBus im module for GTK+ 2.x.
+
+%description gtk2 -l pl.UTF-8
+Ten pakiet zawiera moduł im IBus dla GTK+ 2.x.
%package gtk3
-Summary: IBus im module for gtk3
+Summary: IBus im module for GTK+ 3.x
+Summary(pl.UTF-8): Moduł im IBus dla GTK+ 3.x
Group: Libraries
Requires: %{name} = %{version}-%{release}
-Requires: %{name}-libs = %{version}-%{release}
Requires: imsettings-gnome3
Requires(post): glib2 >= 1:2.26.0
%description gtk3
-This package contains ibus im module for gtk3
+This package contains IBus im module for GTK+ 3.x.
+
+%description gtk3 -l pl.UTF-8
+Ten pakiet zawiera moduł im IBus dla GTK+ 3.x.
%package gnome3
Summary: IBus gnome-shell-extension for GNOME3
+Summary(pl.UTF-8): Rozszerzenie gnome-shell IBus dla GNOME3
Group: Libraries
Requires: %{name} = %{version}-%{release}
-Requires: %{name}-libs = %{version}-%{release}
Requires: gnome-shell
%description gnome3
@@ -109,31 +121,89 @@ This is a transitional package which allows users to try out new IBus
GUI for GNOME3 in development. Note that this package will be marked
as obsolete once the integration has completed in the GNOME3 upstream.
+%description gnome3 -l pl.UTF-8
+Pakiet przejściowy pozwalający użytkownikom wypróbować nowe GUI IBus
+dla GNOME3 w trakcie tworzenia. Uwaga: ten pakiet zostanie oznaczony
+jako przestarzały po zakończeniu integracji w GNOME3.
+
%package devel
-Summary: Development tools for ibus
+Summary: Development files for IBus
+Summary(pl.UTF-8): Pliki programistyczne IBus
Group: Development/Libraries
Requires: %{name}-libs = %{version}-%{release}
-Requires: dbus-devel
Requires: glib2-devel
%description devel
-The ibus-devel package contains the header files and developer docs
-for ibus.
+The ibus-devel package contains the header files for IBus.
+
+%description devel -l pl.UTF-8
+Ten pakiet zawiera pliki nagłówkowe dla szkieletu IBus.
+
+%package static
+Summary: Static ibus library
+Summary(pl.UTF-8): Biblioteka statyczna ibus
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+
+%description static
+Static ibus library.
+
+%description static -l pl.UTF-8
+Biblioteka statyczna ibus.
+
+%package apidocs
+Summary: Development documentation for IBus
+Summary(pl.UTF-8): Dokumentacja programisty dla szkieletu IBus
+Group: Development/Libraries
+Requires: gtk-doc-common
+Conflicts: ibus-devel < 1.4.2
+
+%description apidocs
+Development documentation for IBus.
+
+%description apidocs -l pl.UTF-8
+Dokumentacja programisty dla szkieletu IBus.
+
+%package -n python-ibus
+Summary: Python interface to IBus framework
+Summary(pl.UTF-8): Pythonowy interfejs do szkieletu IBus
+Group: Development/Languages/Python
+Requires: python-dbus >= 0.83.0
+Requires: python-pygobject
+Requires: python-pygtk-pango
+Requires: python-pyxdg
+Conflicts: ibus < 1.4.2
+
+%description -n python-ibus
+Python interface to IBus framework.
+
+%description -n python-ibus -l pl.UTF-8
+Pythonowy interfejs do szkieletu IBus.
+
+%package -n vala-ibus
+Summary: Vala API for ibus library
+Summary(pl.UTF-8): API języka Vala do biblioteki ibus
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+Requires: vala
+
+%description -n vala-ibus
+Vala API for ibus library.
+
+%description -n vala-ibus -l pl.UTF-8
+API języka Vala do biblioteki ibus.
%prep
%setup -q
%if %{with gjsfile}
zcat %{SOURCE100} | tar xf -
%endif
-%patch0 -p1
cp -p client/gtk2/ibusimcontext.c client/gtk3/ibusimcontext.c
+%patch0 -p1
%patch1 -p1
-%patch2 -p1
mv data/ibus.schemas.in data/ibus.schemas.in.in
+%patch2 -p1
%patch3 -p1
-%patch4 -p1
-
-%patch91 -p1
%build
%if %{with gjsfile}
@@ -143,25 +213,27 @@ cd $d
%{__make}
cd ..
%endif
-
+%{__libtoolize}
%{__aclocal} -I m4
-%{__autoheader}
%{__autoconf}
+%{__autoheader}
%{__automake}
%configure \
+ --disable-gtk-doc \
+ --disable-silent-rules \
+ --enable-bridge-hotkey \
+ --enable-gconf \
--enable-gtk2 \
--enable-gtk3 \
- --enable-xim \
+ --enable-introspection \
+ --enable-python \
+ %{?with_static_libs:--enable-static} \
+ --enable-surrounding-text \
--enable-vala \
+ --enable-xim \
--enable-xkb \
- --disable-gtk-doc \
- --enable-gconf \
- --enable-python \
--with-html-dir=%{_gtkdocdir} \
- --with-no-snooper-apps='gnome-do,Do.*,firefox.*,.*chrome.*,.*chromium.*' \
- --enable-surrounding-text \
- --enable-bridge-hotkey \
- --enable-introspection
+ --with-no-snooper-apps='gnome-do,Do.*,firefox.*,.*chrome.*,.*chromium.*'
%{__make}
@@ -179,15 +251,18 @@ mv $RPM_BUILD_ROOT{%{_desktopdir},%{_sysconfdir}/xdg/autostart}/ibus.desktop
%if %{with gjsfile}
d=$(basename %{SOURCE100} .tar.gz)
-cd $d
-%{__make} install \
+%{__make} -C $d install \
DESTDIR=$RPM_BUILD_ROOT
%{__rm} $RPM_BUILD_ROOT%{_localedir}/*/LC_MESSAGES/ibus-gjs.mo
-cd ..
%endif
%{__rm} $RPM_BUILD_ROOT%{_libdir}/*.la
%{__rm} $RPM_BUILD_ROOT%{_libdir}/gtk*/*/immodules/*.la
+%if %{with static_libs}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/gtk*/*/immodules/*.a
+%endif
+
+%py_postclean
%find_lang %{name}10
@@ -207,8 +282,8 @@ rm -rf $RPM_BUILD_ROOT
%postun
%update_icon_cache hicolor
-%post libs -p /sbin/ldconfig
-%postun libs -p /sbin/ldconfig
+%post libs -p /sbin/ldconfig
+%postun libs -p /sbin/ldconfig
%post gtk2
%if "%{_lib}" != "lib"
@@ -251,21 +326,15 @@ rm -rf $RPM_BUILD_ROOT
%attr(755,root,root) %{_libexecdir}/ibus-x11
%attr(755,root,root) %{_libexecdir}/ibus-engine-xkb
%attr(755,root,root) %{_libexecdir}/ibus-xkb
-%dir %{py_sitescriptdir}/ibus
-%{py_sitescriptdir}/ibus/*.py
-%{py_sitescriptdir}/ibus/*.py[co]
-%dir %{py_sitescriptdir}/ibus/interface
-%{py_sitescriptdir}/ibus/interface/*.py
-%{py_sitescriptdir}/ibus/interface/*.py[co]
%{_datadir}/ibus
-%{_desktopdir}/*.desktop
-%{_iconsdir}/hicolor/*/apps/*.png
-%{_iconsdir}/hicolor/*/apps/*.svg
+%{_desktopdir}/ibus-setup.desktop
+%{_iconsdir}/hicolor/*/apps/ibus-*.png
+%{_iconsdir}/hicolor/scalable/apps/ibus*.svg
%files libs
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libibus-1.0.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libibus-1.0.so.[0-9]
+%attr(755,root,root) %ghost %{_libdir}/libibus-1.0.so.0
%{_libdir}/girepository-1.0/IBus-1.0.typelib
%files gtk2
@@ -283,10 +352,29 @@ rm -rf $RPM_BUILD_ROOT
%files devel
%defattr(644,root,root,755)
-%doc %{_gtkdocdir}/ibus
-%attr(755,root,root) %{_libdir}/lib*.so
+%attr(755,root,root) %{_libdir}/libibus-1.0.so
%{_pkgconfigdir}/ibus-1.0.pc
%{_includedir}/ibus-1.0
%{_datadir}/gir-1.0/IBus-1.0.gir
+
+%if %{with static_libs}
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/libibus-1.0.a
+%endif
+
+%files apidocs
+%defattr(644,root,root,755)
+%{_gtkdocdir}/ibus
+
+%files -n python-ibus
+%defattr(644,root,root,755)
+%dir %{py_sitescriptdir}/ibus
+%{py_sitescriptdir}/ibus/*.py[co]
+%dir %{py_sitescriptdir}/ibus/interface
+%{py_sitescriptdir}/ibus/interface/*.py[co]
+
+%files -n vala-ibus
+%defattr(644,root,root,755)
%{_datadir}/vala/vapi/ibus-1.0.vapi
%{_datadir}/vala/vapi/ibus-1.0.deps
diff --git a/ibus-541492-xkb.patch b/ibus-541492-xkb.patch
index 9c381b5..0154c76 100644
--- a/ibus-541492-xkb.patch
+++ b/ibus-541492-xkb.patch
@@ -7689,7 +7689,7 @@ index 0000000..5866b40
+
+ object_path = g_strdup_printf ("/org/freedesktop/IBus/XKBEngine/%d",
+ ++id);
-+ engine = ibus_engine_new_type (IBUS_TYPE_SIMPLE_ENGINE,
++ engine = ibus_engine_new_with_type (IBUS_TYPE_SIMPLE_ENGINE,
+ engine_name,
+ object_path,
+ ibus_service_get_connection (IBUS_SERVICE (factory)));
diff --git a/ibus-711632-fedora-fallback-icon.patch b/ibus-711632-fedora-fallback-icon.patch
deleted file mode 100644
index 8ad9e9a..0000000
--- a/ibus-711632-fedora-fallback-icon.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- ibus/ui/gtk/main.py.orig 2011-04-25 12:33:39.296999692 +0900
-+++ ibus/ui/gtk/main.py 2011-06-08 11:53:44.027232075 +0900
-@@ -86,6 +86,9 @@ class UIApplication:
- pass
-
- def launch_panel(replace):
-+ settings = gtk.settings_get_default()
-+ if settings.get_property('gtk-fallback-icon-theme') == None:
-+ settings.set_property('gtk-fallback-icon-theme', 'gnome')
- # gtk.settings_get_default().props.gtk_theme_name = "/home/phuang/.themes/aud-Default/gtk-2.0/gtkrc"
- # gtk.rc_parse("./themes/default/gtkrc")
- UIApplication(replace).run()
---- ibus/ui/gtk/panel.py.orig 2011-06-08 12:16:40.107577438 +0900
-+++ ibus/ui/gtk/panel.py 2011-06-08 12:17:00.440460268 +0900
-@@ -507,7 +507,7 @@ class Panel(ibus.PanelBase):
- menu = gtk.Menu()
- item = gtk.ImageMenuItem(_("No input window"))
- size = gtk.icon_size_lookup(gtk.ICON_SIZE_MENU)
-- item.set_image(_icon.IconWidget("gtk-info", size[0]))
-+ item.set_image(_icon.IconWidget("gtk-dialog-info", size[0]))
- menu.add(item)
- menu.show_all()
- else:
diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch
deleted file mode 100644
index d48afe8..0000000
--- a/ibus-HEAD.patch
+++ /dev/null
@@ -1,696 +0,0 @@
-From 9614076737ee88c092af209485d1d65d2269f4ad Mon Sep 17 00:00:00 2001
-From: Tsuyoshi Horo <horo at chromium.org>
-Date: Thu, 18 Aug 2011 11:48:30 -0400
-Subject: [PATCH] Fix for ibus_serializable_{get,set}_attachment.
-
-TEST=Linux desktop
-
-Review URL: http://codereview.appspot.com/4905054
-Patch from Tsuyoshi Horo <horo at chromium.org>.
----
- src/ibusserializable.c | 18 +++++++++---------
- src/ibusserializable.h | 3 +--
- src/tests/ibus-serializable.c | 34 ++++++++++++++++++++++++++++++++++
- 3 files changed, 44 insertions(+), 11 deletions(-)
-
-diff --git a/src/ibusserializable.c b/src/ibusserializable.c
-index 2e4b21f..ed89534 100644
---- a/src/ibusserializable.c
-+++ b/src/ibusserializable.c
-@@ -164,7 +164,7 @@ _g_value_serialize (GValue *value)
- { \
- g##_type v; \
- v = g_value_get_##_type (value); \
-- return g_variant_new ("v", g_variant_new (signature, v)); \
-+ return g_variant_new (signature, v); \
- }
- CASE_ENTRY(CHAR, char, "y");
- CASE_ENTRY(BOOLEAN, boolean, "b");
-@@ -198,14 +198,14 @@ _g_value_deserialize (GVariant *variant)
- }
-
- typedef gchar *gstring;
--#define IF_ENTRY(TYPE, _type, signature) \
-- if (type == G_VARIANT_TYPE_##TYPE) { \
-- g##_type v; \
-- g_variant_get (variant, signature, &v); \
-- value = g_slice_new0 (GValue); \
-- g_value_init (value, G_TYPE_##TYPE); \
-- g_value_set_##_type (value, v); \
-- return value; \
-+#define IF_ENTRY(TYPE, _type, signature) \
-+ if (g_variant_type_equal(type, G_VARIANT_TYPE_##TYPE)) { \
-+ g##_type v; \
-+ g_variant_get (variant, signature, &v); \
-+ value = g_slice_new0 (GValue); \
-+ g_value_init (value, G_TYPE_##TYPE); \
-+ g_value_set_##_type (value, v); \
-+ return value; \
- }
- #define G_VARIANT_TYPE_CHAR G_VARIANT_TYPE_BYTE
- IF_ENTRY(CHAR, char, "y");
-diff --git a/src/ibusserializable.h b/src/ibusserializable.h
-index 358af32..8fd9f8a 100644
---- a/src/ibusserializable.h
-+++ b/src/ibusserializable.h
-@@ -87,12 +87,11 @@
- * ibus_serializable_get_attachment:
- * @o: An IBusSerializable.
- * @k: String formatted key for indexing value.
-- * @v: Value to be attached. Should be also serializable.
- *
- * Get a value from attachment of an IBusSerializable.
- * This macro is an convenient wrapper of ibus_serializable_get_qattachment().
- */
--#define ibus_serializable_get_attachment(o, k, v) \
-+#define ibus_serializable_get_attachment(o, k) \
- ibus_serializable_get_qattachment (o, g_quark_from_string (k))
-
- /**
-diff --git a/src/tests/ibus-serializable.c b/src/tests/ibus-serializable.c
-index c2a7529..e2541ec 100644
---- a/src/tests/ibus-serializable.c
-+++ b/src/tests/ibus-serializable.c
-@@ -128,6 +128,39 @@ test_property (void)
- g_variant_type_info_assert_no_infos ();
- }
-
-+static void
-+test_attachment (void)
-+{
-+ IBusText *text = ibus_text_new_from_string ("main text");
-+
-+ GValue value1 = { 0 };
-+ g_value_init(&value1, G_TYPE_INT);
-+ g_value_set_int(&value1, 100);
-+ ibus_serializable_set_attachment ((IBusSerializable *)text, "key1", &value1);
-+
-+ GValue value2 = { 0 };
-+ g_value_init(&value2, G_TYPE_STRING);
-+ g_value_set_string(&value2, "value string");
-+ ibus_serializable_set_attachment ((IBusSerializable *)text, "key2", &value2);
-+
-+ GVariant *variant = ibus_serializable_serialize ((IBusSerializable *)text);
-+ g_object_unref ((IBusSerializable *)text);
-+
-+ IBusSerializable *object = (IBusSerializable *) ibus_serializable_deserialize (variant);
-+ g_variant_unref (variant);
-+
-+ g_assert_cmpstr (((IBusText *)object)->text, ==, "main text");
-+
-+ const GValue *newvalue1 = ibus_serializable_get_attachment (object, "key1");
-+ g_assert (newvalue1 != NULL);
-+ g_assert (g_value_get_int (newvalue1) == 100);
-+
-+ const GValue *newvalue2 = ibus_serializable_get_attachment (object, "key2");
-+ g_assert (newvalue2 != NULL);
-+ g_assert_cmpstr (g_value_get_string (newvalue2), ==, "value string");
-+
-+ g_variant_type_info_assert_no_infos ();
-+}
-
- gint
- main (gint argc,
-@@ -142,6 +175,7 @@ main (gint argc,
- g_test_add_func ("/ibus/enginedesc", test_engine_desc);
- g_test_add_func ("/ibus/lookuptable", test_lookup_table);
- g_test_add_func ("/ibus/property", test_property);
-+ g_test_add_func ("/ibus/attachment", test_attachment);
-
- return g_test_run ();
- }
---
-1.7.5.4
-
-From ac9dfac13cef34288440a2ecdf067cd827fb2f8f Mon Sep 17 00:00:00 2001
-From: Peng Huang <shawn.p.huang at gmail.com>
-Date: Fri, 19 Aug 2011 08:23:33 -0400
-Subject: [PATCH] Use GVariant as attachment for IBusSerializable.
-
-BUG=None
-TEST=Linux desktop
-
-Review URL: http://codereview.appspot.com/4902051
----
- src/ibusserializable.c | 176 ++++++-----------------------------------
- src/ibusserializable.h | 81 +++++++++----------
- src/tests/ibus-serializable.c | 47 ++++++++----
- 3 files changed, 98 insertions(+), 206 deletions(-)
-
-diff --git a/src/ibusserializable.c b/src/ibusserializable.c
-index ed89534..6251c89 100644
---- a/src/ibusserializable.c
-+++ b/src/ibusserializable.c
-@@ -124,114 +124,13 @@ ibus_serializable_destroy (IBusSerializable *serializable)
- parent_class->destroy (IBUS_OBJECT (serializable));
- }
-
--static GValue *
--ibus_g_value_dup (const GValue *value)
--{
-- GValue *new_value;
--
-- new_value = g_slice_new0 (GValue);
-- g_value_init (new_value, G_VALUE_TYPE (value));
-- g_value_copy (value, new_value);
--
-- return new_value;
--}
--
--static void
--ibus_g_value_free (GValue *value)
--{
-- g_value_unset (value);
-- g_slice_free (GValue, value);
--}
--
--static GVariant *
--_g_value_serialize (GValue *value)
--{
-- GType type;
--
-- type = G_VALUE_TYPE (value);
-- g_return_val_if_fail (type != G_TYPE_INVALID, FALSE);
--
-- if (g_type_is_a (type, IBUS_TYPE_SERIALIZABLE)) {
-- IBusSerializable *object;
-- object = IBUS_SERIALIZABLE (g_value_get_object (value));
-- return ibus_serializable_serialize (object);
-- }
--
-- typedef const gchar *gstring;
-- switch (type) {
--#define CASE_ENTRY(TYPE, _type, signature) \
-- case G_TYPE_##TYPE: \
-- { \
-- g##_type v; \
-- v = g_value_get_##_type (value); \
-- return g_variant_new (signature, v); \
-- }
-- CASE_ENTRY(CHAR, char, "y");
-- CASE_ENTRY(BOOLEAN, boolean, "b");
-- CASE_ENTRY(INT, int, "i");
-- CASE_ENTRY(UINT, uint, "u");
-- CASE_ENTRY(INT64, int64, "x");
-- CASE_ENTRY(UINT64, uint64, "t");
-- CASE_ENTRY(FLOAT, float, "d");
-- CASE_ENTRY(DOUBLE, double, "d");
-- CASE_ENTRY(STRING, string, "s");
--#undef CASE_ENTRY
-- }
--
-- g_assert_not_reached ();
--}
--
--static GValue *
--_g_value_deserialize (GVariant *variant)
--{
-- GValue *value = NULL;
-- const GVariantType *type;
--
-- type = g_variant_get_type (variant);
-- if (type == G_VARIANT_TYPE_TUPLE) {
-- IBusSerializable *object;
-- object = ibus_serializable_deserialize (variant);
-- value = g_slice_new0 (GValue);
-- g_value_init (value, G_OBJECT_TYPE (object));
-- g_value_take_object (value, object);
-- return value;
-- }
--
-- typedef gchar *gstring;
--#define IF_ENTRY(TYPE, _type, signature) \
-- if (g_variant_type_equal(type, G_VARIANT_TYPE_##TYPE)) { \
-- g##_type v; \
-- g_variant_get (variant, signature, &v); \
-- value = g_slice_new0 (GValue); \
-- g_value_init (value, G_TYPE_##TYPE); \
-- g_value_set_##_type (value, v); \
-- return value; \
-- }
--#define G_VARIANT_TYPE_CHAR G_VARIANT_TYPE_BYTE
-- IF_ENTRY(CHAR, char, "y");
--#undef G_VARIANT_TYPE_CHAR
-- IF_ENTRY(BOOLEAN, boolean, "b");
--#define G_VARIANT_TYPE_INT G_VARIANT_TYPE_INT32
--#define G_VARIANT_TYPE_UINT G_VARIANT_TYPE_UINT32
-- IF_ENTRY(INT, int, "i");
-- IF_ENTRY(UINT, uint, "u");
--#undef G_VARIANT_TYPE_INT
--#undef G_VARIANT_TYPE_UINT
-- IF_ENTRY(INT64, int64, "x");
-- IF_ENTRY(UINT64, uint64, "t");
-- IF_ENTRY(DOUBLE, double, "d");
-- IF_ENTRY(STRING, string, "s");
--
-- g_return_val_if_reached (NULL);
--}
--
- static void
- _serialize_cb (GQuark key,
-- GValue *value,
-+ GVariant *value,
- GVariantBuilder *array)
- {
- g_variant_builder_add (array, "{sv}",
-- g_quark_to_string (key), _g_value_serialize (value));
-+ g_quark_to_string (key), g_variant_new_variant (value));
- }
-
- static gboolean
-@@ -257,21 +156,26 @@ ibus_serializable_real_deserialize (IBusSerializable *object,
- GVariantIter *iter = NULL;
- g_variant_get_child (variant, 1, "a{sv}", &iter);
- while (g_variant_iter_loop (iter, "{&sv}", &key, &value)) {
-- ibus_serializable_set_attachment (object, key, _g_value_deserialize (value));
-+ GVariant *attachment = g_variant_get_variant (value);
-+ ibus_serializable_set_attachment (object,
-+ key,
-+ attachment);
-+ g_variant_unref (attachment);
-+ g_variant_unref (value);
- }
- g_variant_iter_free (iter);
- return 2;
- }
-
- static void
--_copy_cb (GQuark key,
-- GValue *value,
-- GData **datalist)
-+_copy_cb (GQuark key,
-+ GVariant *value,
-+ GData **datalist)
- {
- g_datalist_id_set_data_full (datalist,
- key,
-- ibus_g_value_dup (value),
-- (GDestroyNotify) ibus_g_value_free);
-+ g_variant_ref (value),
-+ (GDestroyNotify) g_variant_unref);
- }
-
- static gboolean
-@@ -289,50 +193,21 @@ ibus_serializable_real_copy (IBusSerializable *dest,
- return TRUE;
- }
-
--gboolean
--ibus_serializable_set_qattachment (IBusSerializable *object,
-+void
-+ibus_serializable_set_qattachment (IBusSerializable *serializable,
- GQuark key,
-- const GValue *value)
-+ GVariant *value)
- {
-- g_return_val_if_fail (IBUS_IS_SERIALIZABLE (object), FALSE);
-- g_return_val_if_fail (key != 0, FALSE);
-- g_return_val_if_fail (G_IS_VALUE (value), FALSE);
--
-- IBusSerializablePrivate *priv;
-- priv = IBUS_SERIALIZABLE_GET_PRIVATE (object);
--
-- GType type = G_VALUE_TYPE (value);
--
-- switch (type) {
-- case G_TYPE_CHAR:
-- case G_TYPE_INT:
-- case G_TYPE_INT64:
-- case G_TYPE_UINT:
-- case G_TYPE_UINT64:
-- case G_TYPE_BOOLEAN:
-- case G_TYPE_DOUBLE:
-- case G_TYPE_FLOAT:
-- case G_TYPE_STRING:
-- g_datalist_id_set_data_full (&priv->attachments,
-- key,
-- ibus_g_value_dup (value),
-- (GDestroyNotify) ibus_g_value_free);
-- return TRUE;
-- }
--
-- if (g_type_is_a (type, IBUS_TYPE_SERIALIZABLE)) {
-- g_datalist_id_set_data_full (&priv->attachments,
-- key,
-- ibus_g_value_dup (value),
-- (GDestroyNotify) ibus_g_value_free);
-- return TRUE;
-- }
-+ g_return_if_fail (IBUS_IS_SERIALIZABLE (serializable));
-+ g_return_if_fail (key != 0);
-
-- g_warning ("The value of %s is not support serializing", g_type_name (type));
-- return FALSE;
-+ g_datalist_id_set_data_full (&serializable->priv->attachments,
-+ key,
-+ value ? g_variant_ref_sink (value) : NULL,
-+ (GDestroyNotify) g_variant_unref);
- }
-
--const GValue *
-+GVariant *
- ibus_serializable_get_qattachment (IBusSerializable *serializable,
- GQuark key)
- {
-@@ -340,7 +215,8 @@ ibus_serializable_get_qattachment (IBusSerializable *serializable,
- g_return_val_if_fail (IBUS_IS_SERIALIZABLE (serializable), NULL);
- g_return_val_if_fail (key != 0, NULL);
-
-- return (const GValue *) g_datalist_id_get_data (&serializable->priv->attachments, key);
-+ return (GVariant *) g_datalist_id_get_data (
-+ &serializable->priv->attachments, key);
- }
-
- void
-@@ -351,7 +227,7 @@ ibus_serializable_remove_qattachment (IBusSerializable *serializable,
- g_return_if_fail (IBUS_IS_SERIALIZABLE (serializable));
- g_return_if_fail (key != 0);
-
-- g_datalist_id_remove_no_notify (&serializable->priv->attachments, key);
-+ g_datalist_id_set_data (&serializable->priv->attachments, key, NULL);
- }
-
- IBusSerializable *
-diff --git a/src/ibusserializable.h b/src/ibusserializable.h
-index 8fd9f8a..7a100c2 100644
---- a/src/ibusserializable.h
-+++ b/src/ibusserializable.h
-@@ -126,39 +126,40 @@ struct _IBusSerializable {
-
- /**
- * IBusSerializableSerializeFunc:
-- * @object: An IBusSerializable.
-- * @iter: An IBusMessageIter.
-- * @returns: TRUE if succeed; FALSE otherwise.
-+ * @serializable: An #IBusSerializable.
-+ * @builder: A #GVariantBuilder.
-+ * @returns: %TRUE if succeed; %FALSE otherwise.
- *
- * Prototype of serialize function.
- * Serialize function convert an IBusSerializable to IBusMessageIter.
- * Returns a gboolean value which indicates whether the conversion is success.
-- * Return TRUE if succeed.
-+ * Return %TRUE if succeed.
- */
--typedef gboolean (* IBusSerializableSerializeFunc) (IBusSerializable *object,
-+typedef gboolean (* IBusSerializableSerializeFunc) (IBusSerializable *serializable,
- GVariantBuilder *builder);
-
- /**
- * IBusSerializableDeserializeFunc:
-- * @object: An IBusSerializable.
-- * @iter: An IBusMessageIter.
-- * @returns: TRUE if succeed; FALSE otherwise.
-+ * @serializable: An #IBusSerializable.
-+ * @variant: A #GVariant contains a tuple.
-+ * @returns: The number of values in the variant(tuple) are consumed.
- *
- * Prototype of deserialize function.
- * Deserialize function convert an IBusMessageIter to IBusSerializable.
-- * Returns a gboolean value which indicates whether the conversion is success.
-+ * Returns an integer value which indicates how many values in
-+ * the variant(tuple) are consumed.
- */
--typedef gint (* IBusSerializableDeserializeFunc) (IBusSerializable *object,
-+typedef gint (* IBusSerializableDeserializeFunc) (IBusSerializable *serializable,
- GVariant *variant);
-
- /**
- * IBusSerializableCopyFunc:
-- * @dest: The destination IBusSerializable.
-- * @src: A source IBusMessageIter.
-- * @returns: TRUE if succeed; FALSE otherwise.
-+ * @dest: The destination #IBusSerializable.
-+ * @src: A source #IBusMessageIter.
-+ * @returns: %TRUE if succeed; %FALSE otherwise.
- *
- * Prototype of copy function.
-- * Copy function copy from source IBusSerializable to the destination one.
-+ * Copy function copy from source #IBusSerializable to the destination one.
- * Returns a gboolean value which indicates whether the copying is success.
- */
- typedef gboolean (* IBusSerializableCopyFunc) (IBusSerializable *dest,
-@@ -188,79 +189,77 @@ GType ibus_serializable_get_type (void);
- *
- * Returns: a new instance of #IBusSerializable.
- */
--IBusSerializable * ibus_serializable_new (void);
-+IBusSerializable *ibus_serializable_new (void);
-
- /**
- * ibus_serializable_set_qattachment:
-- * @object: An IBusSerializable.
-+ * @serializable: An #IBusSerializable.
- * @key: String formatted key for indexing value.
-- * @value: Value to be attached. Should be also serializable.
-- * @returns: TRUE if succeed; FALSE otherwise.
-+ * @value: Value to be attached or %NULL to remove any prevoius value.
- *
-- * Attach a value to an IBusSerializable. The value should be serializable as well.
-- * Basic type such as integer, string are deemed to be serializable.
-+ * Attach a value to an IBusSerializable. If the value is floating,
-+ * the serializable will take the ownership.
- *
- * @see_also: ibus_serializable_set_attachment().
- */
--gboolean ibus_serializable_set_qattachment (IBusSerializable *object,
-+void ibus_serializable_set_qattachment (IBusSerializable *serializable,
- GQuark key,
-- const GValue *value);
-+ GVariant *value);
-
- /**
- * ibus_serializable_get_qattachment:
-- * @object: An IBusSerializable.
-+ * @serializable: An #IBusSerializable.
- * @key: String formatted key for indexing value.
-- * @returns: The attached value; or NULL if fail to retrieve the value.
-+ * @returns: The attached value; or %NULL if fail to retrieve the value.
- *
-- * Get a value from attachment of an IBusSerializable.
-+ * Get a value from attachment of an #IBusSerializable.
- * @see_also: ibus_serializable_set_attachment().
- */
--const GValue *ibus_serializable_get_qattachment (IBusSerializable *object,
-+GVariant *ibus_serializable_get_qattachment (IBusSerializable *serializable,
- GQuark key);
-
- /**
- * ibus_serializable_remove_qattachment:
-- * @object: An IBusSerializable.
-+ * @serializable: An #IBusSerializable.
- * @key: String formatted key for indexing value.
- *
-- * Remove a value from attachment of an IBusSerializable.
-+ * Remove a value from attachment of an #IBusSerializable.
- * @see_also: ibus_serializable_remove_attachment().
- */
- void ibus_serializable_remove_qattachment
-- (IBusSerializable *object,
-+ (IBusSerializable *serializable,
- GQuark key);
-
- /**
- * ibus_serializable_copy:
-- * @object: An IBusSerializable.
-- * @returns: A newly allocated clone object; or NULL if @object is not serializable.
-+ * @serializable: An #IBusSerializable.
-+ * @returns: A newly allocated clone object; or %NULL if @object is not serializable.
- *
-- * Clone an IBusSerializable.
-+ * Clone an #IBusSerializable.
- * The copy method should be implemented in extended class.
- *
- * @see_also: IBusSerializableCopyFunc().
- */
--IBusSerializable *ibus_serializable_copy (IBusSerializable *object);
-+IBusSerializable *ibus_serializable_copy (IBusSerializable *serializable);
-
- /**
- * ibus_serializable_serialize:
-- * @object: An IBusSerializable.
-- * @iter: An IBusMessageIter.
-- * @returns: TRUE if succeed; FALSE otherwise.
-+ * @serializable: An #IBusSerializable.
-+ * @returns: A #GVariant.
- *
-- * Serialize an IBusSerializable to an IBusMessageIter.
-+ * Serialize an #IBusSerializable to a #GVariant.
- * The serialize method should be implemented in extended class.
- *
- * @see_also: IBusSerializableCopyFunc().
- */
--GVariant *ibus_serializable_serialize (IBusSerializable *object);
-+GVariant *ibus_serializable_serialize (IBusSerializable *serializable);
-
- /**
- * ibus_serializable_deserialize:
-- * @iter: An IBusMessageIter.
-- * @returns: The deserialized IBusSerializable.
-+ * @variant: A #GVariant.
-+ * @returns: The deserialized #IBusSerializable.
- *
-- * Deserialize an IBusMessageIter to an IBusSerializable/
-+ * Deserialize a #GVariant to an #IBusSerializable/
- * The deserialize method should be implemented in extended class.
- *
- * @see_also: IBusSerializableCopyFunc().
-diff --git a/src/tests/ibus-serializable.c b/src/tests/ibus-serializable.c
-index e2541ec..d2bd61a 100644
---- a/src/tests/ibus-serializable.c
-+++ b/src/tests/ibus-serializable.c
-@@ -12,7 +12,7 @@ void test_serializable (IBusSerializable *object)
- g_variant_get_data (variant);
- s1 = g_variant_print (variant, TRUE);
-
-- object = (IBusSerializable *) ibus_serializable_deserialize (variant);
-+ object = ibus_serializable_deserialize (variant);
- g_variant_unref (variant);
-
- variant = ibus_serializable_serialize (object);
-@@ -131,34 +131,51 @@ test_property (void)
- static void
- test_attachment (void)
- {
-- IBusText *text = ibus_text_new_from_string ("main text");
-+ IBusText *text = ibus_text_new_from_static_string ("main text");
-
-- GValue value1 = { 0 };
-- g_value_init(&value1, G_TYPE_INT);
-- g_value_set_int(&value1, 100);
-- ibus_serializable_set_attachment ((IBusSerializable *)text, "key1", &value1);
-+ ibus_serializable_set_attachment ((IBusSerializable *)text,
-+ "key1",
-+ g_variant_new_int32 (100));
-
-- GValue value2 = { 0 };
-- g_value_init(&value2, G_TYPE_STRING);
-- g_value_set_string(&value2, "value string");
-- ibus_serializable_set_attachment ((IBusSerializable *)text, "key2", &value2);
-+ ibus_serializable_set_attachment ((IBusSerializable *)text,
-+ "key2",
-+ g_variant_new_string ("value string"));
-+
-+ ibus_serializable_set_attachment ((IBusSerializable *)text,
-+ "key3",
-+ g_variant_new ("(iuds)",1, 2, 3.333, "test value"));
-
- GVariant *variant = ibus_serializable_serialize ((IBusSerializable *)text);
- g_object_unref ((IBusSerializable *)text);
-
-- IBusSerializable *object = (IBusSerializable *) ibus_serializable_deserialize (variant);
-+ IBusSerializable *object = ibus_serializable_deserialize (variant);
- g_variant_unref (variant);
-
- g_assert_cmpstr (((IBusText *)object)->text, ==, "main text");
-
-- const GValue *newvalue1 = ibus_serializable_get_attachment (object, "key1");
-+ GVariant *newvalue1 = ibus_serializable_get_attachment (object, "key1");
- g_assert (newvalue1 != NULL);
-- g_assert (g_value_get_int (newvalue1) == 100);
-+ g_assert_cmpint (g_variant_get_int32 (newvalue1), ==, 100);
-
-- const GValue *newvalue2 = ibus_serializable_get_attachment (object, "key2");
-+ GVariant *newvalue2 = ibus_serializable_get_attachment (object, "key2");
- g_assert (newvalue2 != NULL);
-- g_assert_cmpstr (g_value_get_string (newvalue2), ==, "value string");
-+ g_assert_cmpstr (g_variant_get_string (newvalue2, NULL), ==, "value string");
-+
-+ {
-+ GVariant *newvalue3 = ibus_serializable_get_attachment (object, "key3");
-+ g_assert (newvalue3 != NULL);
-+ gint32 i;
-+ guint32 u;
-+ gdouble d;
-+ const gchar *s;
-+ g_variant_get (newvalue3, "(iud&s)", &i, &u, &d, &s);
-+ g_assert_cmpint (i, ==, 1);
-+ g_assert_cmpuint (u, ==, 2);
-+ g_assert_cmpfloat (d, ==, 3.333);
-+ g_assert_cmpstr (s, ==, "test value");
-+ }
-
-+ g_object_unref (object);
- g_variant_type_info_assert_no_infos ();
- }
-
---
-1.7.5.4
-
-From adcf71e6e5de45530a09e7b9f310f2e489cd9631 Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1 at gmail.com>
-Date: Wed, 24 Aug 2011 11:44:21 +0900
-Subject: [PATCH] Check if BusInputContext has an enabled engine in global
- input method.
-
-BUG=RH#731610
-TEST=Linux desktop
-
-Review URL: http://codereview.appspot.com/4917041
----
- bus/ibusimpl.c | 6 +++++-
- 1 files changed, 5 insertions(+), 1 deletions(-)
-
-diff --git a/bus/ibusimpl.c b/bus/ibusimpl.c
-index 853465c..1942504 100644
---- a/bus/ibusimpl.c
-+++ b/bus/ibusimpl.c
-@@ -1176,12 +1176,14 @@ bus_ibus_impl_set_focused_context (BusIBusImpl *ibus,
- }
-
- BusEngineProxy *engine = NULL;
-+ gboolean is_enabled = FALSE;
-
- if (ibus->focused_context) {
- if (ibus->use_global_engine) {
- /* dettach engine from the focused context */
- engine = bus_input_context_get_engine (ibus->focused_context);
- if (engine) {
-+ is_enabled = bus_input_context_is_enabled (ibus->focused_context);
- g_object_ref (engine);
- bus_input_context_set_engine (ibus->focused_context, NULL);
- }
-@@ -1203,7 +1205,9 @@ bus_ibus_impl_set_focused_context (BusIBusImpl *ibus,
- /* attach engine to the focused context */
- if (engine != NULL) {
- bus_input_context_set_engine (context, engine);
-- bus_input_context_enable (context);
-+ if (is_enabled) {
-+ bus_input_context_enable (context);
-+ }
- g_object_unref (engine);
- }
-
---
-1.7.5.4
-
-From 894ecc8e16b01d5594ef9b8f9c5530bb2e9d0502 Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1 at gmail.com>
-Date: Thu, 25 Aug 2011 09:59:42 +0900
-Subject: [PATCH] Add Disable signal when
- bus_ibus_impl_set_context_engine_from_desc is called.
-
-BUG=#1261
-TEST=Linux desktop
-
-Review URL: http://codereview.appspot.com/4875049
----
- bus/inputcontext.c | 2 ++
- 1 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git a/bus/inputcontext.c b/bus/inputcontext.c
-index 723b5fd..3c81688 100644
---- a/bus/inputcontext.c
-+++ b/bus/inputcontext.c
-@@ -2292,6 +2292,8 @@ new_engine_cb (GObject *obj,
- "Opertation was cancelled");
- }
- else {
-+ /* Let BusEngineProxy call a Disable signal. */
-+ bus_input_context_disable (data->context);
- bus_input_context_set_engine (data->context, engine);
- g_object_unref (engine);
- bus_input_context_enable (data->context);
---
-1.7.5.4
-
diff --git a/ibus-xx-bridge-hotkey.patch b/ibus-xx-bridge-hotkey.patch
index 39e6a7d..7a494f4 100644
--- a/ibus-xx-bridge-hotkey.patch
+++ b/ibus-xx-bridge-hotkey.patch
@@ -921,7 +921,7 @@ diff --git a/configure.ac b/configure.ac
index 4c20ae7..21d35c3 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -462,6 +462,34 @@ else
+@@ -486,6 +486,34 @@
enable_surrounding_text="no (disabled, use --enable-surrounding-text to enable)"
fi
@@ -953,10 +953,10 @@ index 4c20ae7..21d35c3 100644
+)
+AC_SUBST(DEFAULT_BRIDGE_ENGINE_NAME)
+
- # check iso-codes
+ # Check iso-codes.
PKG_CHECK_MODULES(ISOCODES, [
iso-codes
-@@ -488,6 +516,7 @@ bus/Makefile
+@@ -512,6 +540,7 @@
util/Makefile
util/IMdkit/Makefile
data/Makefile
@@ -964,7 +964,7 @@ index 4c20ae7..21d35c3 100644
data/icons/Makefile
data/keymaps/Makefile
data/dconf/Makefile
-@@ -540,5 +569,7 @@ Build options:
+@@ -564,5 +593,7 @@
No snooper regexes "$NO_SNOOPER_APPS"
Panel icon "$IBUS_ICON_KEYBOARD"
Enable surrounding-text $enable_surrounding_text
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/ibus.git/commitdiff/36809d14cec32af4409348bafd02b19b453147cf
More information about the pld-cvs-commit
mailing list