# Copyright 1999-2015 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ EAPI=5 PYTHON_COMPAT=( python2_7 ) VALA_MIN_API_VERSION="0.20" 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 gnome2-utils multilib python-single-r1 readme.gentoo vala virtualx DESCRIPTION="Intelligent Input Bus for Linux / Unix OS" HOMEPAGE="https://github.com/ibus/ibus/wiki" SRC_URI="https://ibus.googlecode.com/files/${P}.tar.gz" LICENSE="LGPL-2.1" SLOT="0" KEYWORDS="alpha amd64 arm ia64 ppc ppc64 sparc x86 ~x86-fbsd" 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 gnome-base/librsvg:2 sys-apps/dbus[X?] app-text/iso-codes >=gnome-base/dconf-0.13.4 x11-libs/libnotify gconf? ( >=gnome-base/gconf-2.12:2 ) gtk? ( x11-libs/gtk+:2 ) gtk3? ( x11-libs/gtk+:3 ) python? ( ${PYTHON_DEPS} ) X? ( x11-libs/libX11 x11-libs/gtk+:2 ) introspection? ( >=dev-libs/gobject-introspection-0.6.8 ) nls? ( virtual/libintl ) wayland? ( dev-libs/wayland )" 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 ) vala? ( $(vala_depend) ) gnome-base/gconf" # 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" DISABLE_AUTOFORMATTING="yes" DOC_CONTENTS="To use ibus, you should: 1. Get input engines from sunrise overlay. Run \"emerge -s ibus-\" in your favorite terminal for a list of packages we already have. 2. Setup ibus: $ ibus-setup 3. Set the following in your user startup scripts such as .xinitrc, .xsession or .xprofile: export XMODIFIERS=\"@im=ibus\" export GTK_IM_MODULE=\"ibus\" export QT_IM_MODULE=\"xim\" ibus-daemon -d -x " 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 } 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 econf \ --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_test() { unset DBUS_SESSION_BUS_ADDRESS Xemake check || die } src_install() { default 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 readme.gentoo_create_doc } pkg_preinst() { use gconf && gnome2_gconf_savelist gnome2_schemas_savelist gnome2_icon_savelist } pkg_postinst() { use gconf && gnome2_gconf_install use gtk && gnome2_query_immodules_gtk2 use gtk3 && gnome2_query_immodules_gtk3 gnome2_schemas_update gnome2_icon_cache_update readme.gentoo_print_elog } pkg_postrm() { use gtk && gnome2_query_immodules_gtk2 use gtk3 && gnome2_query_immodules_gtk3 use gconf && gnome2_schemas_update gnome2_schemas_savelist gnome2_icon_cache_update }