# 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.16" VALA_USE_DEPEND="vapigen" inherit eutils gnome.org python-r1 vala DESCRIPTION="VNC viewer widget for GTK" HOMEPAGE="https://live.gnome.org/gtk-vnc" LICENSE="GPL-2" SLOT="0" KEYWORDS="~alpha amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc x86 ~x86-fbsd" IUSE="examples +gtk3 +introspection pulseaudio python sasl vala" REQUIRED_USE=" python? ( ${PYTHON_REQUIRED_USE} ) vala? ( gtk3 introspection ) " # libview is used in examples/gvncviewer -- no need # glib-2.30.1 needed to avoid linking failure due to .la files (bug #399129) COMMON_DEPEND=" >=dev-libs/glib-2.30.1:2 >=dev-libs/libgcrypt-1.4.2:0 dev-libs/libgpg-error >=net-libs/gnutls-1.4 >=x11-libs/cairo-1.2 >=x11-libs/gtk+-2.18:2 x11-libs/libX11 gtk3? ( >=x11-libs/gtk+-2.91.3:3 ) introspection? ( >=dev-libs/gobject-introspection-0.9.4 ) pulseaudio? ( media-sound/pulseaudio ) python? ( ${PYTHON_DEPS} >=dev-python/pygtk-2:2[${PYTHON_USEDEP}] ) sasl? ( dev-libs/cyrus-sasl ) " RDEPEND="${COMMON_DEPEND}" DEPEND="${COMMON_DEPEND} >=dev-lang/perl-5 >=dev-util/intltool-0.40 sys-devel/gettext virtual/pkgconfig vala? ( $(vala_depend) >=dev-libs/gobject-introspection-0.9.4 ) " # eautoreconf requires gnome-common GTK2_BUILDDIR="${WORKDIR}/${P}_gtk2" GTK3_BUILDDIR="${WORKDIR}/${P}_gtk3" src_prepare() { mkdir -p "${GTK2_BUILDDIR}" || die mkdir -p "${GTK3_BUILDDIR}" || die prepare_python() { mkdir -p "${BUILD_DIR}" || die } if use python; then python_foreach_impl prepare_python fi # Remove a few files that were autogenerated during distcheck. # Having these around in srcdir breaks out of tree build since they're # expected to be in builddir, which is correct for trunk builds since # they're generated files, not source files. Funny false dichotomy. rm -vf "${S}"/src/{vncconnectionenums.[ch],vncdisplayenums.[ch]} # Fix incorrect codegendir check: h2def.py is in pygobject, not pygtk, upstream bug#???? sed -e 's/codegendir pygtk-2.0/codegendir pygobject-2.0/g' \ -i src/Makefile.* || die # libtool seems unable to find this via VPATH so help it sed -r "s:(gtkvnc_la_LIBADD =) libgtk-vnc-.*\.la:\1 ${GTK2_BUILDDIR}/src/libgtk-vnc-1.0.la:" \ -i src/Makefile.{am,in} || die vala_src_prepare } src_configure() { local myconf myconf=" $(use_with examples) \ $(use_enable introspection) \ $(use_with pulseaudio) \ $(use_with sasl) \ --with-coroutine=gthread \ --without-libview \ --disable-static \ --disable-vala" cd "${GTK2_BUILDDIR}" || die einfo "Running configure in ${GTK2_BUILDDIR}" ECONF_SOURCE="${S}" econf ${myconf} \ --with-python=no \ --with-gtk=2.0 configure_python() { ECONF_SOURCE="${S}" econf ${myconf} \ $(use_with python) \ --with-gtk=2.0 } if use python; then python_foreach_impl run_in_build_dir configure_python fi if use gtk3; then cd "${GTK3_BUILDDIR}" || die einfo "Running configure in ${GTK3_BUILDDIR}" # Python support is via gobject-introspection # Ex: from gi.repository import GtkVnc ECONF_SOURCE="${S}" econf ${myconf} \ $(use_enable vala) \ --with-python=no \ --with-gtk=3.0 fi } src_compile() { cd "${GTK2_BUILDDIR}" || die einfo "Running make in ${GTK2_BUILDDIR}" emake compile_python() { cd "${BUILD_DIR}"/src || die # CPPFLAGS set to help find includes for gvnc.override emake gtkvnc.la \ VPATH="${S}/src:${GTK2_BUILDDIR}/src:${BUILD_DIR}/src" \ CPPFLAGS="${CPPFLAGS} -I${GTK2_BUILDDIR}/src" } if use python; then python_foreach_impl run_in_build_dir compile_python fi if use gtk3; then cd "${GTK3_BUILDDIR}" || die einfo "Running make in ${GTK3_BUILDDIR}" emake fi } src_test() { cd "${GTK2_BUILDDIR}" || die einfo "Running make check in ${GTK2_BUILDDIR}" default if use gtk3; then cd "${GTK3_BUILDDIR}" || die einfo "Running make check in ${GTK3_BUILDDIR}" default fi } src_install() { # Parallel installation fails sometimes, bug #328273, upstream bug #651923 # Upstream is still unable to reproduce, try again to use parallel with this new version dodoc AUTHORS ChangeLog NEWS README cd "${GTK2_BUILDDIR}" || die einfo "Running make install in ${GTK2_BUILDDIR}" # MAKEOPTS="${MAKEOPTS} -j1" default default install_python() { cd "${BUILD_DIR}"/src || die emake install-pyexecLTLIBRARIES DESTDIR="${D}" \ VPATH="${S}/src:${GTK2_BUILDDIR}/src:${BUILD_DIR}/src" \ CPPFLAGS="${CPPFLAGS} -I${GTK2_BUILDDIR}/src" } if use python; then python_foreach_impl run_in_build_dir install_python fi if use gtk3; then cd "${GTK3_BUILDDIR}" || die einfo "Running make install in ${GTK3_BUILDDIR}" #MAKEOPTS="${MAKEOPTS} -j1" default default fi prune_libtool_files }