From aa66ee37897073357f1e162e6d3576c8b44a0bec Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Tue, 2 Dec 2008 22:20:34 +0000 Subject: Source bashrc files as late as possible, giving them the opportunity to override as much as possible. Thanks to Ned Ludd for the suggestion. (trunk r12134) svn path=/main/branches/2.1.6/; revision=12135 --- bin/ebuild.sh | 9 +++++---- bin/isolated-functions.sh | 3 ++- bin/misc-functions.sh | 1 + 3 files changed, 8 insertions(+), 5 deletions(-) (limited to 'bin') diff --git a/bin/ebuild.sh b/bin/ebuild.sh index 87f94717b..197be2696 100755 --- a/bin/ebuild.sh +++ b/bin/ebuild.sh @@ -1492,6 +1492,8 @@ _ebuild_phase_funcs() { esac } +PORTAGE_BASHRCS_SOURCED=0 + # @FUNCTION: source_all_bashrcs # @DESCRIPTION: # Source a relevant bashrc files and perform other miscellaneous @@ -1504,6 +1506,8 @@ _ebuild_phase_funcs() { # function for the current phase. # source_all_bashrcs() { + [[ $PORTAGE_BASHRCS_SOURCED = 1 ]] && return 0 + PORTAGE_BASHRCS_SOURCED=1 local x if [[ -n $EBUILD_PHASE && -n $EAPI ]] ; then @@ -1840,7 +1844,6 @@ if ! hasq "$EBUILD_PHASE" clean cleanrm depend && \ ;; esac - source_all_bashrcs fi if ! hasq "$EBUILD_PHASE" clean cleanrm && \ @@ -1888,9 +1891,6 @@ fi # code can simply assume that it's defined. [[ -n $EAPI ]] || EAPI=0 -# enable bashrc support for the clean phase -hasq "$EBUILD_PHASE" clean cleanrm && source_all_bashrcs - # unset USE_EXPAND variables that contain only the special "*" token for x in ${USE_EXPAND} ; do [ "${!x}" == "*" ] && unset ${x} @@ -1918,6 +1918,7 @@ if [ "${EBUILD_PHASE}" != "depend" ] ; then fi ebuild_main() { + source_all_bashrcs local f x local export_vars="ASFLAGS CCACHE_DIR CCACHE_SIZE CFLAGS CXXFLAGS LDFLAGS LIBCFLAGS LIBCXXFLAGS" diff --git a/bin/isolated-functions.sh b/bin/isolated-functions.sh index 77336d914..9ed933c02 100755 --- a/bin/isolated-functions.sh +++ b/bin/isolated-functions.sh @@ -514,7 +514,8 @@ save_ebuild_env() { GOOD HILITE HOME IMAGE \ LAST_E_CMD LAST_E_LEN LD_PRELOAD MISC_FUNCTIONS_ARGS MOPREFIX \ NORMAL PKGDIR PKGUSE PKG_LOGDIR PKG_TMPDIR \ - PORTAGE_ACTUAL_DISTDIR PORTAGE_ARCHLIST PORTAGE_BASHRC \ + PORTAGE_ACTUAL_DISTDIR PORTAGE_ARCHLIST \ + PORTAGE_BASHRC PORTAGE_BASHRCS_SOURCED \ PORTAGE_BINPKG_TAR_OPTS PORTAGE_BINPKG_TMPFILE PORTAGE_BUILDDIR \ PORTAGE_COLORMAP PORTAGE_CONFIGROOT PORTAGE_DEBUG \ PORTAGE_DEPCACHEDIR PORTAGE_GID PORTAGE_INST_GID \ diff --git a/bin/misc-functions.sh b/bin/misc-functions.sh index f1f705538..8ce82a2a8 100755 --- a/bin/misc-functions.sh +++ b/bin/misc-functions.sh @@ -710,6 +710,7 @@ dyn_rpm() { } if [ -n "${MISC_FUNCTIONS_ARGS}" ]; then + source_all_bashrcs [ "$PORTAGE_DEBUG" == "1" ] && set -x for x in ${MISC_FUNCTIONS_ARGS}; do ${x} -- cgit v1.2.3-1-g7c22