Define EBUILD_MASTER_PID earlier in ebuild.sh, before $EBUILD is v2.2_rc76
authorZac Medico <zmedico@gentoo.org>
Mon, 6 Sep 2010 23:43:54 +0000 (16:43 -0700)
committerZac Medico <zmedico@gentoo.org>
Mon, 6 Sep 2010 23:43:54 +0000 (16:43 -0700)
sourced.

bin/ebuild.sh

index bc4700e0b2323acae7ee8c3b595748319526f8fc..e976bd114c6d1bdf65cdf382401923ab59d8473f 100755 (executable)
@@ -1905,6 +1905,10 @@ if [[ -n ${QA_INTERCEPTORS} ]] ; then
        unset BIN_PATH BIN BODY FUNC_SRC
 fi
 
+# Subshell/helper die support (must export for the die helper).
+export EBUILD_MASTER_PID=$BASHPID
+trap 'exit 1' SIGTERM
+
 if ! hasq "$EBUILD_PHASE" clean cleanrm depend && \
        [ -f "${T}"/environment ] ; then
        # The environment may have been extracted from environment.bz2 or
@@ -2104,6 +2108,10 @@ fi
 ebuild_main() {
 
        # Subshell/helper die support (must export for the die helper).
+       # Since this function is typically executed in a subshell,
+       # setup EBUILD_MASTER_PID to refer to the current $BASHPID,
+       # which seems to give the best results when further
+       # nested subshells call die.
        export EBUILD_MASTER_PID=$BASHPID
        trap 'exit 1' SIGTERM
 
@@ -2320,9 +2328,5 @@ elif [[ -n $EBUILD_SH_ARGS ]] ; then
        exit $?
 fi
 
-# Subshell/helper die support (must export for the die helper).
-export EBUILD_MASTER_PID=$BASHPID
-trap 'exit 1' SIGTERM
-
 # Do not exit when ebuild.sh is sourced by other scripts.
 true