summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app-i18n/ibus/ChangeLog8
-rw-r--r--app-i18n/ibus/files/ibus-1.5.1-use-system-keyboard-layout.patch85
-rw-r--r--app-i18n/ibus/ibus-1.5.1-r2.ebuild176
3 files changed, 268 insertions, 1 deletions
diff --git a/app-i18n/ibus/ChangeLog b/app-i18n/ibus/ChangeLog
index 4b59cce07363..0cff4cf2b95b 100644
--- a/app-i18n/ibus/ChangeLog
+++ b/app-i18n/ibus/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for app-i18n/ibus
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-i18n/ibus/ChangeLog,v 1.120 2013/02/09 16:22:33 naota Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-i18n/ibus/ChangeLog,v 1.121 2013/04/03 22:14:52 naota Exp $
+
+*ibus-1.5.1-r2 (03 Apr 2013)
+
+ 03 Apr 2013; Naohiro Aota <naota@gentoo.org>
+ +files/ibus-1.5.1-use-system-keyboard-layout.patch, +ibus-1.5.1-r2.ebuild:
+ Add patch to respect system keyboard layout. #460796
*ibus-1.5.1-r1 (09 Feb 2013)
diff --git a/app-i18n/ibus/files/ibus-1.5.1-use-system-keyboard-layout.patch b/app-i18n/ibus/files/ibus-1.5.1-use-system-keyboard-layout.patch
new file mode 100644
index 000000000000..56d99a0b9478
--- /dev/null
+++ b/app-i18n/ibus/files/ibus-1.5.1-use-system-keyboard-layout.patch
@@ -0,0 +1,85 @@
+diff --git a/data/ibus.schemas.in b/data/ibus.schemas.in
+index dbb6da8..54ccb4c 100644
+--- a/data/ibus.schemas.in
++++ b/data/ibus.schemas.in
+@@ -224,7 +224,7 @@
+ <applyto>/desktop/ibus/general/use_system_keyboard_layout</applyto>
+ <owner>ibus</owner>
+ <type>bool</type>
+- <default>true</default>
++ <default>false</default>
+ <locale name="C">
+ <short>Use system keyboard layout</short>
+ <long>Use system keyboard (XKB) layout</long>
+diff --git a/ui/gtk3/panel.vala b/ui/gtk3/panel.vala
+index 24e6b2e..18ef5c0 100644
+--- a/ui/gtk3/panel.vala
++++ b/ui/gtk3/panel.vala
+@@ -48,6 +48,7 @@ class Panel : IBus.PanelService {
+ private Gtk.AboutDialog m_about_dialog;
+ private Gtk.CssProvider m_css_provider;
+ private int m_switcher_delay_time = 400;
++ private bool m_use_system_keyboard_layout = false;
+ private const string ACCELERATOR_SWITCH_IME_FOREWARD = "<Control>space";
+
+ private GLib.List<Keybinding> m_keybindings = new GLib.List<Keybinding>();
+@@ -265,6 +266,22 @@ class Panel : IBus.PanelService {
+ }
+ }
+
++ private void set_use_system_keyboard_layout(Variant? variant) {
++ Variant var_use_system_kbd_layout = variant;
++
++ if (var_use_system_kbd_layout == null) {
++ var_use_system_kbd_layout = m_config.get_value(
++ "general",
++ "use_system_keyboard_layout");
++ }
++
++ if (var_use_system_kbd_layout == null) {
++ return;
++ }
++
++ m_use_system_keyboard_layout = var_use_system_kbd_layout.get_boolean();
++ }
++
+ public void set_config(IBus.Config config) {
+ if (m_config != null) {
+ m_config.value_changed.disconnect(config_value_changed_cb);
+@@ -278,9 +295,13 @@ class Panel : IBus.PanelService {
+ m_config.watch("general", "preload_engines");
+ m_config.watch("general", "engines_order");
+ m_config.watch("general", "switcher_delay_time");
++ m_config.watch("general", "use_system_keyboard_layout");
+ m_config.watch("general/hotkey", "triggers");
+ m_config.watch("panel", "custom_font");
+ m_config.watch("panel", "use_custom_font");
++ // Update m_use_system_keyboard_layout before update_engines()
++ // is called.
++ set_use_system_keyboard_layout(null);
+ update_engines(m_config.get_value("general", "preload_engines"),
+ m_config.get_value("general", "engines_order"));
+ unbind_switch_shortcut();
+@@ -352,7 +373,9 @@ class Panel : IBus.PanelService {
+ return;
+ }
+ // set xkb layout
+- exec_setxkbmap(engine);
++ if (!m_use_system_keyboard_layout) {
++ exec_setxkbmap(engine);
++ }
+ }
+
+ private void config_value_changed_cb(IBus.Config config,
+@@ -380,6 +403,11 @@ class Panel : IBus.PanelService {
+ set_switcher_delay_time(variant);
+ return;
+ }
++
++ if (section == "general" && name == "use_system_keyboard_layout") {
++ set_use_system_keyboard_layout(variant);
++ return;
++ }
+ }
+
+ private void handle_engine_switch(Gdk.Event event, bool revert) {
diff --git a/app-i18n/ibus/ibus-1.5.1-r2.ebuild b/app-i18n/ibus/ibus-1.5.1-r2.ebuild
new file mode 100644
index 000000000000..59a65b0cd51f
--- /dev/null
+++ b/app-i18n/ibus/ibus-1.5.1-r2.ebuild
@@ -0,0 +1,176 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-i18n/ibus/ibus-1.5.1-r2.ebuild,v 1.1 2013/04/03 22:14:52 naota Exp $
+
+EAPI=4
+PYTHON_DEPEND="python? 2:2.5"
+VALA_MIN_API_VERSION="0.18"
+VALA_USE_DEPEND="vapigen"
+# Vapigen is needed for the vala binding
+# Valac is needed when building from git for the engine
+
+inherit eutils gnome2-utils multilib python vala virtualx
+
+DESCRIPTION="Intelligent Input Bus for Linux / Unix OS"
+HOMEPAGE="http://code.google.com/p/ibus/"
+SRC_URI="http://ibus.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
+# USE=vala is temporaly removed due to fix patch:
+# ${P}-use-system-keyboard-layout.patch
+IUSE="dconf deprecated +gconf gtk +gtk3 +introspection nls +python test +X"
+REQUIRED_USE="|| ( gtk gtk3 X )
+ deprecated? ( python )
+ python? ( || ( deprecated ( gtk3 introspection ) ) )" #342903
+
+COMMON_DEPEND=">=dev-libs/glib-2.26:2
+ gnome-base/librsvg:2
+ sys-apps/dbus[X?]
+ app-text/iso-codes
+
+ dconf? ( >=gnome-base/dconf-0.13.4 )
+ gconf? ( >=gnome-base/gconf-2.12:2 )
+ gtk? ( x11-libs/gtk+:2 )
+ gtk3? ( x11-libs/gtk+:3 )
+ X? (
+ x11-libs/libX11
+ x11-libs/gtk+:2 )
+ introspection? ( >=dev-libs/gobject-introspection-0.6.8 )
+ nls? ( virtual/libintl )"
+RDEPEND="${COMMON_DEPEND}
+ python? (
+ dev-python/pyxdg
+ deprecated? (
+ >=dev-python/dbus-python-0.83
+ dev-python/pygobject:2
+ dev-python/pygtk:2 )
+ gtk3? (
+ dev-python/pygobject:3
+ x11-libs/gdk-pixbuf:2[introspection]
+ x11-libs/pango[introspection]
+ x11-libs/gtk+:3[introspection] )
+ )"
+DEPEND="${COMMON_DEPEND}
+ >=dev-lang/perl-5.8.1
+ dev-util/gtk-doc-am
+ dev-util/intltool
+ virtual/pkgconfig
+ nls? ( >=sys-devel/gettext-0.16.1 )
+ $(vala_depend)"
+
+# stress test in bus/ fails
+# IBUS-CRITICAL **: bus_test_client_init: assertion `ibus_bus_is_connected (_bus)' failed
+RESTRICT="test"
+
+DOCS="AUTHORS ChangeLog NEWS README"
+
+pkg_setup() {
+ if use python; then
+ python_set_active_version 2
+ python_pkg_setup
+ fi
+}
+
+src_prepare() {
+ # We run "dconf update" in pkg_postinst/postrm to avoid sandbox violations
+ sed -e 's/dconf update/$(NULL)/' \
+ -i data/dconf/Makefile.{am,in} || die
+ use python && python_clean_py-compile_files
+ vala_src_prepare
+ epatch "${FILESDIR}"/${P}-setup.patch \
+ "${FILESDIR}"/${P}-queue-events.patch \
+ "${FILESDIR}"/${P}-use-system-keyboard-layout.patch
+ cp "${S}"/client/gtk2/ibusimcontext.c "${S}"/client/gtk3/ibusimcontext.c || die
+}
+
+src_configure() {
+ local python_conf
+ if use python; then
+ # We cannot call $(PYTHON) if we haven't called python_pkg_setup
+ python_conf="PYTHON=$(PYTHON)
+ $(use_enable deprecated python-library)
+ $(use_enable gtk3 setup)"
+ else
+ python_conf="--disable-python-library --disable-setup"
+ fi
+ econf \
+ $(use_enable dconf) \
+ $(use_enable introspection) \
+ $(use_enable gconf) \
+ $(use_enable gtk gtk2) \
+ $(use_enable gtk xim) \
+ $(use_enable gtk3) \
+ $(use_enable gtk3 ui) \
+ $(use_enable nls) \
+ $(use_enable test tests) \
+ $(use_enable X xim) \
+ --enable-vala \
+ ${python_conf}
+}
+
+src_test() {
+ unset DBUS_SESSION_BUS_ADDRESS
+ Xemake check || die
+}
+
+src_install() {
+ default
+
+ find "${ED}" -name '*.la' -exec rm -f {} +
+
+ insinto /etc/X11/xinit/xinput.d
+ newins xinput-ibus ibus.conf
+
+ keepdir /usr/share/ibus/{engine,icons} #289547
+}
+
+pkg_preinst() {
+ use gconf && gnome2_gconf_savelist
+ gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ if use dconf; then
+ ebegin "Updating dconf system databases"
+ dconf update
+ eend $?
+ fi
+ use gconf && gnome2_gconf_install
+ use gtk && gnome2_query_immodules_gtk2
+ use gtk3 && gnome2_query_immodules_gtk3
+ use deprecated && python_mod_optimize ${PN}
+ use python && use gtk3 && python_mod_optimize /usr/share/${PN}
+ gnome2_icon_cache_update
+
+ elog "To use ibus, you should:"
+ elog "1. Get input engines from sunrise overlay."
+ elog " Run \"emerge -s ibus-\" in your favorite terminal"
+ elog " for a list of packages we already have."
+ elog
+ elog "2. Setup ibus:"
+ elog
+ elog " $ ibus-setup"
+ elog
+ elog "3. Set the following in your user startup scripts"
+ elog " such as .xinitrc, .xsession or .xprofile:"
+ elog
+ elog " export XMODIFIERS=\"@im=ibus\""
+ elog " export GTK_IM_MODULE=\"ibus\""
+ elog " export QT_IM_MODULE=\"xim\""
+ elog " ibus-daemon -d -x"
+}
+
+pkg_postrm() {
+ if use dconf; then
+ ebegin "Updating dconf system databases"
+ dconf update
+ eend $?
+ fi
+ use gtk && gnome2_query_immodules_gtk2
+ use gtk3 && gnome2_query_immodules_gtk3
+ use deprecated && python_mod_cleanup ${PN}
+ use python && use gtk3 && python_mod_cleanup /usr/share/${PN}
+ gnome2_icon_cache_update
+}