For bug #148603, when an ebuild dies, print eclasses that are from overlays. Thanks...
authorZac Medico <zmedico@gentoo.org>
Mon, 25 Dec 2006 20:42:08 +0000 (20:42 -0000)
committerZac Medico <zmedico@gentoo.org>
Mon, 25 Dec 2006 20:42:08 +0000 (20:42 -0000)
svn path=/main/trunk/; revision=5392

bin/ebuild.sh

index d17a5ab037c29d866494f3f9e7c19208eb7a6d02..3e793a6ecc4416f933feab24e6ba8be8d6094e7c 100755 (executable)
@@ -261,6 +261,15 @@ diefunc() {
        echo "!!! ${*:-(no error message)}" >&2
        echo "!!! If you need support, post the topmost build error, and the call stack if relevant." >&2
        echo >&2
+       if [ -n "${EBUILD_OVERLAY_ECLASSES}" ] ; then
+               echo "This ebuild used the following eclasses from overlays:" >&2
+               echo >&2
+               for x in ${EBUILD_OVERLAY_ECLASSES} ; do
+                       echo "  ${x}" >&2
+               done
+               echo >&2
+       fi
+
        if [ "${EBUILD_PHASE/depend}" == "${EBUILD_PHASE}" ]; then
                local x
                for x in $EBUILD_DEATH_HOOKS; do
@@ -1170,6 +1179,7 @@ inherit() {
        fi
 
        local location
+       local olocation
        local PECLASS
 
        local B_IUSE
@@ -1178,6 +1188,7 @@ inherit() {
        local B_PDEPEND
        while [ "$1" ]; do
                location="${ECLASSDIR}/${1}.eclass"
+               olocation=""
 
                # PECLASS is used to restore the ECLASS var after recursion.
                PECLASS="$ECLASS"
@@ -1209,6 +1220,11 @@ inherit() {
                debug-print "inherit: $1 -> $location"
                [ ! -e "$location" ] && die "${1}.eclass could not be found by inherit()"
 
+               if [ "${location}" == "${olocation}" ] && \
+                       ! hasq "${location}" ${EBUILD_OVERLAY_ECLASSES} ; then
+                               EBUILD_OVERLAY_ECLASSES="${EBUILD_OVERLAY_ECLASSES} ${location}"
+               fi
+
                #We need to back up the value of DEPEND and RDEPEND to B_DEPEND and B_RDEPEND
                #(if set).. and then restore them after the inherit call.