Support all current EAPIs and use xz as compressor for upcoming releases.
authorPacho Ramos <pacho@gentoo.org>
Fri, 22 Jul 2011 18:10:54 +0000 (18:10 +0000)
committerPacho Ramos <pacho@gentoo.org>
Fri, 22 Jul 2011 18:10:54 +0000 (18:10 +0000)
eclass/emul-linux-x86.eclass

index 07c80127803c36c21d2efdef4b8a37bad9383f7c..731d2983f59983949f8a0533552062c02138ec41 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2007 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/emul-linux-x86.eclass,v 1.8 2011/02/07 11:46:24 pacho Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/emul-linux-x86.eclass,v 1.9 2011/07/22 18:10:54 pacho Exp $
 
 #
 # Original Author: Mike Doty <kingtaco@gentoo.org>
@@ -16,12 +16,24 @@ else
        IUSE=""
 fi
 
-EXPORT_FUNCTIONS src_unpack src_install
+case "${EAPI:-0}" in
+       0|1)
+               EXPORT_FUNCTIONS src_unpack src_install
+               ;;
+       2|3|4)
+               EXPORT_FUNCTIONS src_unpack src_prepare src_install
+               ;;
+       *) die "EAPI=${EAPI} is not supported" ;;
+esac
 
-if version_is_at_least 20110129; then
-       SRC_URI="http://dev.gentoo.org/~pacho/emul/${P}.tar.bz2"
+if version_is_at_least 20110722; then
+       SRC_URI="http://dev.gentoo.org/~pacho/emul/${P}.tar.xz"
 else
-       SRC_URI="mirror://gentoo/${PN}-${PV}.tar.bz2"
+       if version_is_at_least 20110129; then
+               SRC_URI="http://dev.gentoo.org/~pacho/emul/${P}.tar.bz2"
+       else
+               SRC_URI="mirror://gentoo/${PN}-${PV}.tar.bz2"
+       fi
 fi
 
 DESCRIPTION="Provides precompiled 32bit libraries"
@@ -39,13 +51,17 @@ RDEPEND=""
 emul-linux-x86_src_unpack() {
        unpack ${A}
        cd "${S}"
+       has ${EAPI:-0} 0 1 && emul-linux-x86_src_prepare
+}
 
+emul-linux-x86_src_prepare() {
        ALLOWED=${ALLOWED:-^${S}/etc/env.d}
        has development "${IUSE//+}" && use development && ALLOWED="${ALLOWED}|/usr/lib32/pkgconfig"
        find "${S}" ! -type d ! -name '*.so*' | egrep -v "${ALLOWED}" | xargs -d $'\n' rm -f || die 'failed to remove everything but *.so*'
 }
 
 emul-linux-x86_src_install() {
+       has ${EAPI:-0} 0 1 2 && ! use prefix && ED="${D}"
        for dir in etc/env.d etc/revdep-rebuild ; do
                if [[ -d "${S}"/${dir} ]] ; then
                        for f in "${S}"/${dir}/* ; do
@@ -57,5 +73,5 @@ emul-linux-x86_src_install() {
        # remove void directories
        find "${S}" -depth -type d -print0 | xargs -0 rmdir 2&>/dev/null
 
-       cp -pPR "${S}"/* "${D}"/ || die "copying files failed!"
+       cp -pPR "${S}"/* "${ED}"/ || die "copying files failed!"
 }