# Copyright 1999-2014 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ EAPI=5 PYTHON_COMPAT=( python{2_6,2_7} ) 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 bash-completion-r1 eutils multilib python-single-r1 vala virtualx gnome2-multilib 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="~amd64" IUSE="deprecated gconf gtk +gtk3 +introspection nls +python test vala wayland +X" REQUIRED_USE="|| ( gtk gtk3 X ) deprecated? ( python ) python? ( ${PYTHON_REQUIRED_USE} || ( deprecated ( gtk3 introspection ) ) )" #342903 COMMON_DEPEND=" >=dev-libs/glib-2.26:2[${MULTILIB_USEDEP}] gnome-base/librsvg:2[${MULTILIB_USEDEP}] sys-apps/dbus[X?,${MULTILIB_USEDEP}] app-text/iso-codes >=gnome-base/dconf-0.13.4[${MULTILIB_USEDEP}] x11-libs/libnotify[${MULTILIB_USEDEP}] gconf? ( >=gnome-base/gconf-2.12:2[${MULTILIB_USEDEP}] ) gtk? ( x11-libs/gtk+:2[${MULTILIB_USEDEP}] ) gtk3? ( x11-libs/gtk+:3[${MULTILIB_USEDEP}] ) python? ( ${PYTHON_DEPS} ) X? ( x11-libs/libX11[${MULTILIB_USEDEP}] x11-libs/gtk+:2[${MULTILIB_USEDEP}] ) introspection? ( >=dev-libs/gobject-introspection-0.6.8[${MULTILIB_USEDEP}] ) nls? ( virtual/libintl[${MULTILIB_USEDEP}] ) wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )" RDEPEND="${COMMON_DEPEND} x11-apps/setxkbmap 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[${MULTILIB_USEDEP}] ) vala? ( $(vala_depend) ) gnome-base/gconf[${MULTILIB_USEDEP}]" # 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() { use python && python-single-r1_pkg_setup } 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 vala && vala_src_prepare cp "${S}"/client/gtk2/ibusimcontext.c "${S}"/client/gtk3/ibusimcontext.c || die gnome2-multilib_src_prepare } src_configure() { local python_conf if use python; then python_conf="PYTHON=${PYTHON} $(use_enable deprecated python-library) $(use_enable gtk3 setup)" else python_conf="--disable-python-library --disable-setup" fi gnome2-multilib_src_configure \ --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) \ $(use_enable vala) \ $(use_enable wayland) \ ${python_conf} } src_install() { gnome2-multilib_src_install } ehook gnome2-multilib-per-abi-pre_src_test my_abi_pre_test my_abi_pre_test() { unset DBUS_SESSION_BUS_ADDRESS Xemake check || die return 1 } ehook gnome2-multilib-per-abi-pre_src_install my_abi_pre_install my_abi_pre_install() { default return 1 } ehook gnome2-multilib-global-post_src_install my_global_post_install my_global_post_install() { prune_libtool_files --all mv "${ED}"/usr/share/bash-completion/completions/ibus.bash "${T}" rm -rf "${ED}"/usr/share/bash-completion || die newbashcomp "${T}"/ibus.bash ${PN} insinto /etc/X11/xinit/xinput.d newins xinput-ibus ibus.conf keepdir /usr/share/ibus/{engine,icons} #289547 use deprecated && python_optimize use python && use gtk3 && python_optimize } pkg_preinst() { use gconf && gnome2_gconf_savelist gnome2_schemas_savelist gnome2_icon_savelist } pkg_postinst() { use gconf && gnome2_gconf_install use gtk && gnome2-multilib_query_immodules_gtk2 use gtk3 && gnome2-multilib_query_immodules_gtk3 gnome2_schemas_update 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() { use gtk && gnome2-multilib_query_immodules_gtk2 use gtk3 && gnome2-multilib_query_immodules_gtk3 use gconf && gnome2_schemas_update gnome2_schemas_savelist gnome2_icon_cache_update }