Support for multiple python ABIs, bug #309039.
authorGilles Dartiguelongue <eva@gentoo.org>
Mon, 31 May 2010 21:01:47 +0000 (21:01 +0000)
committerGilles Dartiguelongue <eva@gentoo.org>
Mon, 31 May 2010 21:01:47 +0000 (21:01 +0000)
eclass/gnome-python-common.eclass

index e45082bdb46920fe7146d6d1079d612c7c0cb4ff..0a2b5370e49b1f936e864faaa62a3b3ce5e38125 100644 (file)
@@ -1,6 +1,6 @@
-# Copyright 1999-2008 Gentoo Foundation
+# Copyright 1999-2010 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/gnome-python-common.eclass,v 1.9 2010/02/09 10:06:36 grobian Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/gnome-python-common.eclass,v 1.10 2010/05/31 21:01:47 eva Exp $
 
 # Original Author: Arun Raghavan <ford_prefect@gentoo.org> (based on the
 #                 gnome-python-desktop eclass by Jim Ramsay <lack@gentoo.org>)
 # So, for example, with the bonobo bindings, the original package is libbonobo
 # and the packages is named dev-python/libbonobo-python
 
-inherit versionator python autotools gnome2
+SUPPORT_PYTHON_ABIS="1"
+PYTHON_DEPEND="2"
+RESTRICT_PYTHON_ABIS="3.*"
+
+inherit autotools gnome2 python versionator
+
+case "${EAPI:-0}" in
+       0|1)
+               EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_postinst pkg_postrm
+               ;;
+       *)
+               EXPORT_FUNCTIONS pkg_setup src_prepare src_configure src_compile src_install pkg_postinst pkg_postrm
+               ;;
+esac
 
 G_PY_PN=${G_PY_PN:-gnome-python}
 G_PY_BINDINGS=${G_PY_BINDINGS:-${PN%-python}}
@@ -56,6 +69,8 @@ DEPEND="${RDEPEND}
 
 # Enable the required bindings as specified by the G_PY_BINDINGS variable
 gnome-python-common_pkg_setup() {
+       python_pkg_setup
+
        G2CONF="${G2CONF} --disable-allbindings"
        for binding in ${G_PY_BINDINGS}; do
                G2CONF="${G2CONF} --enable-${binding}"
@@ -65,11 +80,36 @@ gnome-python-common_pkg_setup() {
 gnome-python-common_src_unpack() {
        gnome2_src_unpack
 
+       has ${EAPI:-0} 0 1 && gnome-python-common_src_prepare
+}
+
+gnome-python-common_src_prepare() {
+       gnome2_src_prepare
+
        # disable pyc compiling
        if [[ -f py-compile ]]; then
                rm py-compile
                ln -s $(type -P true) py-compile
        fi
+
+       # The .pc file is installed by respective gnome-python*-base package
+       sed -i '/^pkgconfig_DATA/d' Makefile.in || die "sed failed"
+       sed -i '/^pkgconfigdir/d' Makefile.in || die "sed failed"
+
+       python_copy_sources
+}
+
+gnome-python-common_src_configure() {
+       python_execute_function -s gnome2_src_configure "$@"
+}
+
+gnome-python-common_src_compile() {
+       has ${EAPI:-0} 0 1 && gnome-python-common_src_configure "$@"
+       python_src_compile "$@"
+}
+
+gnome-python-common_src_test() {
+       python_src_test "$@"
 }
 
 # Do a regular gnome2 src_install and then install examples if required.
@@ -77,11 +117,8 @@ gnome-python-common_src_unpack() {
 # (to install a directory recursively, specify it with a trailing '/' - for
 # example, foo/bar/)
 gnome-python-common_src_install() {
-       # The .pc file is installed by respective gnome-python*-base package
-       sed -i '/^pkgconfig_DATA/d' Makefile || die "sed failed"
-       sed -i '/^pkgconfigdir/d' Makefile || die "sed failed"
-
-       gnome2_src_install
+       python_execute_function -s gnome2_src_install "$@"
+       python_clean_installation_image
 
        if hasq examples ${IUSE} && use examples; then
                insinto /usr/share/doc/${PF}/examples
@@ -94,21 +131,12 @@ gnome-python-common_src_install() {
                        fi
                done
        fi
-
-       # Python does not need these, bug #299243
-       find "${D%/}${EPREFIX}$(python_get_sitedir)" -name "*.la" -delete \
-               || die "failed to remove la files"
-
 }
 
 gnome-python-common_pkg_postinst() {
-       python_version
-       python_need_rebuild
-       python_mod_optimize /usr/$(get_libdir)/python${PYVER}/site-packages/gtk-2.0
+       python_mod_optimize gtk-2.0
 }
 
 gnome-python-common_pkg_postrm() {
-       python_mod_cleanup
+       python_mod_cleanup gtk-2.0
 }
-
-EXPORT_FUNCTIONS pkg_setup src_unpack src_install pkg_postinst pkg_postrm