| # Copyright 1999-2009 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| |
| # How to run the test manually: |
| # (chroot)$ ./cros_run_unit_tests --packages ibus |
| # or |
| # (chroot)$ env FEATURES="test" emerge-$BOARD -a ibus |
| |
| EAPI="2" |
| inherit eutils flag-o-matic toolchain-funcs multilib python libtool |
| |
| DESCRIPTION="Intelligent Input Bus for Linux / Unix OS" |
| HOMEPAGE="http://code.google.com/p/ibus/" |
| |
| SRC_URI="mirror://gentoo/${P}.tar.gz" |
| |
| LICENSE="LGPL-2.1" |
| SLOT="0" |
| KEYWORDS="alpha amd64 arm hppa ia64 m68k mips ppc ppc64 s390 sh sparc x86" |
| IUSE="" |
| #RESTRICT="mirror" |
| |
| RDEPEND=">=dev-libs/glib-2.26 |
| x11-libs/libX11" |
| DEPEND="${RDEPEND} |
| dev-util/pkgconfig" |
| |
| src_prepare() { |
| epatch "${FILESDIR}"/${P}-0003-Add-api-to-ibus-for-retreiving-unused-config-values.patch |
| epatch "${FILESDIR}"/${P}-0004-Remove-bus_input_context_register_properties-props_e.patch |
| |
| # TODO(yusukes): Remove this when ibus is upgraded to >= 20120315. |
| epatch "${FILESDIR}"/${P}-fix-engine-destroy-cb-69902696928e6acb953ab30b1f70e462b5994272.patch |
| # TODO(nona): Remove the patch when we fix crosbug.com/25335#c1 |
| epatch "${FILESDIR}"/${P}-do-not-send-cursor-location-to-chrome.patch |
| # TODO(penghuang): Remove the patch when we fix ibus issue 1438. |
| epatch "${FILESDIR}"/${P}-disable-ibus-daemon-tests.patch |
| # TODO(nona): Remove the patch when the next ibus update cycle. |
| epatch "${FILESDIR}"/${P}-fix-double-free.patch |
| |
| elibtoolize |
| } |
| |
| src_configure() { |
| # TODO(yusukes): Add -Werror back when IBus issue 1437 is fixed. |
| # append-cflags -Wall -Werror |
| append-cflags -Wall |
| |
| # TODO(petkov): Ideally, configure should support --disable-isocodes but |
| # it seems that the current version doesn't, so use the environment |
| # variables instead to remove the dependence on iso-codes. |
| econf \ |
| --enable-surrounding-text \ |
| --disable-gtk2 \ |
| --disable-gtk3 \ |
| --disable-dconf \ |
| --disable-gconf \ |
| --enable-memconf \ |
| --disable-xim \ |
| --disable-key-snooper \ |
| --disable-vala \ |
| --enable-introspection=no \ |
| --disable-gtk-doc \ |
| --disable-nls \ |
| --disable-python-library \ |
| --disable-setup \ |
| CPPFLAGS='-DOS_CHROMEOS=1' \ |
| ISOCODES_CFLAGS=' ' ISOCODES_LIBS=' ' |
| } |
| |
| test_fail() { |
| kill $IBUS_DAEMON_PID |
| rm -rf "${T}"/.ibus-test-socket-* |
| die |
| } |
| |
| src_test() { |
| # Start ibus-daemon background. |
| export IBUS_ADDRESS_FILE="`mktemp -d ${T}/.ibus-test-socket-XXXXXXXXXX`/ibus-socket-file" |
| ./bus/ibus-daemon --replace --panel=disable & |
| IBUS_DAEMON_PID=$! |
| |
| # Wait for the daemon to start. |
| if [ ! -f ${IBUS_ADDRESS_FILE} ] ; then |
| sleep .5 |
| fi |
| |
| # Run tests. |
| ./src/tests/ibus-bus || test_fail |
| |
| # TODO(yusukes): Fix 'ERROR:ibus-inputcontext.c:101:test_input_context' |
| # and reenable the test. |
| # ./src/tests/ibus-inputcontext || test_fail |
| |
| ./src/tests/ibus-inputcontext-create || test_fail |
| ./src/tests/ibus-configservice || test_fail |
| ./src/tests/ibus-factory || test_fail |
| ./src/tests/ibus-keynames || test_fail |
| ./src/tests/ibus-serializable || test_fail |
| |
| # Cleanup. |
| kill $IBUS_DAEMON_PID |
| rm -rf "${T}"/.ibus-test-socket-* |
| } |
| |
| src_install() { |
| emake DESTDIR="${D}" install || die |
| if [ -f "${D}/usr/share/ibus/component/gtkpanel.xml" ] ; then |
| rm "${D}/usr/share/ibus/component/gtkpanel.xml" || die |
| fi |
| |
| # Remove unnecessary files |
| rm -rf "${D}/usr/share/ibus/keymaps" || die |
| rm -rf "${D}/usr/share/icons" || die |
| |
| # TODO(yusukes): The latest ibus has --disable-engine option. |
| rm "${D}/usr/share/ibus/component/simple.xml" || die |
| rm "${D}/usr/libexec/ibus-engine-simple" || die |
| |
| rm "${D}/usr/share/applications/ibus.desktop" || die |
| rm "${D}/etc/bash_completion.d/ibus.bash" || die |
| rm -rf "${D}/usr/lib/gtk-2.0/2.10.0/immodules/" || die |
| |
| dodoc AUTHORS ChangeLog NEWS README |
| } |