commit:     743b3337644fbb3ea461d3a9137c9ac85e163f03
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Wed Nov  5 06:50:02 2014 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sat Nov 29 18:28:35 2014 +0000
URL:        
http://sources.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=743b3337

ebuild.sh: force fresh env for pkg_setup (528274)

In ebuild.sh, $T/environment is loaded for most phases, but it should
always start with a fresh environment for pkg_setup. Therefore, skip
environment loading for pkg_setup, and force the ebuild to be sourced.

This also requires a change in the config.environ method, in order
to ensure that the calling environment is inherited by pkg_setup
(even though $T/environment may exist).

X-Gentoo-Bug: 528274
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=528274
Acked-by: Brian Dolbec <dolsen <AT> gentoo.org>

---
 bin/ebuild.sh                        | 4 ++--
 pym/portage/package/ebuild/config.py | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/bin/ebuild.sh b/bin/ebuild.sh
index 658884a..232bf44 100755
--- a/bin/ebuild.sh
+++ b/bin/ebuild.sh
@@ -501,7 +501,7 @@ fi
 export EBUILD_MASTER_PID=${BASHPID:-$(__bashpid)}
 trap 'exit 1' SIGTERM
 
-if ! has "$EBUILD_PHASE" clean cleanrm depend && \
+if ! has "$EBUILD_PHASE" clean cleanrm depend setup && \
        [ -f "${T}"/environment ] ; then
        # The environment may have been extracted from environment.bz2 or
        # may have come from another version of ebuild.sh or something.
@@ -550,7 +550,7 @@ eval 
"PORTAGE_ECLASS_LOCATIONS=(${PORTAGE_ECLASS_LOCATIONS})"
 # Source the ebuild every time for FEATURES=noauto, so that ebuild
 # modifications take effect immediately.
 if ! has "$EBUILD_PHASE" clean cleanrm ; then
-       if [[ $EBUILD_PHASE = depend || ! -f $T/environment || \
+       if [[ $EBUILD_PHASE =~ ^(depend|setup)$ || ! -f $T/environment || \
                -f $PORTAGE_BUILDDIR/.ebuild_changed || \
                " ${FEATURES} " == *" noauto "* ]] ; then
                # The bashrcs get an opportunity here to set aliases that will 
be expanded

diff --git a/pym/portage/package/ebuild/config.py 
b/pym/portage/package/ebuild/config.py
index aca27f2..ca15f81 100644
--- a/pym/portage/package/ebuild/config.py
+++ b/pym/portage/package/ebuild/config.py
@@ -2665,7 +2665,7 @@ class config(object):
                phase = self.get('EBUILD_PHASE')
                filter_calling_env = False
                if self.mycpv is not None and \
-                       phase not in ('clean', 'cleanrm', 'depend', 'fetch'):
+                       phase not in ('clean', 'cleanrm', 'depend', 'fetch', 
'setup'):
                        temp_dir = self.get('T')
                        if temp_dir is not None and \
                                os.path.exists(os.path.join(temp_dir, 
'environment')):

Reply via email to