isolated-functions.sh: split save-ebuild-env.sh
authorZac Medico <zmedico@gentoo.org>
Mon, 12 Sep 2011 00:56:57 +0000 (17:56 -0700)
committerZac Medico <zmedico@gentoo.org>
Mon, 12 Sep 2011 00:56:57 +0000 (17:56 -0700)
bin/ebuild.sh
bin/isolated-functions.sh
bin/phase-functions.sh
bin/save-ebuild-env.sh [new file with mode: 0644]

index 1cb9269dfbf6904eb86f63d58c04700a45fdc9d4..1d014167a758e51c5decd493199fecea0ca3e67a 100755 (executable)
@@ -20,6 +20,7 @@ source "${PORTAGE_BIN_PATH}/isolated-functions.sh" || exit 1
 
 if [[ $EBUILD_PHASE != depend ]] ; then
        source "${PORTAGE_BIN_PATH}/phase-functions.sh" || die
+       source "${PORTAGE_BIN_PATH}/save-ebuild-env.sh" || die
        source "${PORTAGE_BIN_PATH}/phase-helpers.sh" || die
        source "${PORTAGE_BIN_PATH}/bashrc-functions.sh" || die
 else
index c5adc0cc5ceb1e8e17d311e75e3c4b8333ca8061..5247e7e268a5dec066f6a2dc4032812f8ccdffae 100644 (file)
@@ -541,95 +541,4 @@ has() {
        return 1
 }
 
-# @FUNCTION: save_ebuild_env
-# @DESCRIPTION:
-# echo the current environment to stdout, filtering out redundant info.
-#
-# --exclude-init-phases causes pkg_nofetch and src_* phase functions to
-# be excluded from the output. These function are not needed for installation
-# or removal of the packages, and can therefore be safely excluded.
-#
-save_ebuild_env() {
-       (
-
-               if has --exclude-init-phases $* ; then
-                       unset S _E_DOCDESTTREE_ _E_EXEDESTTREE_
-                       if [[ -n $PYTHONPATH ]] ; then
-                               export PYTHONPATH=${PYTHONPATH/${PORTAGE_PYM_PATH}:}
-                               [[ -z $PYTHONPATH ]] && unset PYTHONPATH
-                       fi
-               fi
-
-               # misc variables inherited from the calling environment
-               unset COLORTERM DISPLAY EDITOR LESS LESSOPEN LOGNAME LS_COLORS PAGER \
-                       TERM TERMCAP USER ftp_proxy http_proxy no_proxy
-
-               # other variables inherited from the calling environment
-               unset CVS_RSH ECHANGELOG_USER GPG_AGENT_INFO \
-               SSH_AGENT_PID SSH_AUTH_SOCK STY WINDOW XAUTHORITY
-
-               # CCACHE and DISTCC config
-               unset ${!CCACHE_*} ${!DISTCC_*}
-
-               # There's no need to bloat environment.bz2 with internally defined
-               # functions and variables, so filter them out if possible.
-
-               for x in pkg_setup pkg_nofetch src_unpack src_prepare src_configure \
-                       src_compile src_test src_install pkg_preinst pkg_postinst \
-                       pkg_prerm pkg_postrm ; do
-                       unset -f default_$x _eapi{0,1,2,3,4}_$x
-               done
-               unset x
-
-               unset -f assert assert_sigpipe_ok dump_trace die diefunc \
-                       quiet_mode vecho elog_base eqawarn elog \
-                       esyslog einfo einfon ewarn eerror ebegin _eend eend KV_major \
-                       KV_minor KV_micro KV_to_int get_KV unset_colors set_colors has \
-                       has_phase_defined_up_to \
-                       hasv hasq qa_source qa_call \
-                       addread addwrite adddeny addpredict _sb_append_var \
-                       use usev useq has_version portageq \
-                       best_version use_with use_enable register_die_hook \
-                       keepdir unpack strip_duplicate_slashes econf einstall \
-                       dyn_setup dyn_unpack dyn_clean into insinto exeinto docinto \
-                       insopts diropts exeopts libopts docompress \
-                       abort_handler abort_prepare abort_configure abort_compile \
-                       abort_test abort_install dyn_prepare dyn_configure \
-                       dyn_compile dyn_test dyn_install \
-                       dyn_preinst dyn_help debug-print debug-print-function \
-                       debug-print-section inherit EXPORT_FUNCTIONS remove_path_entry \
-                       save_ebuild_env filter_readonly_variables preprocess_ebuild_env \
-                       set_unless_changed unset_unless_changed source_all_bashrcs \
-                       ebuild_main ebuild_phase ebuild_phase_with_hooks \
-                       _ebuild_arg_to_phase _ebuild_phase_funcs default \
-                       _hasg _hasgq _unpack_tar \
-                       ${QA_INTERCEPTORS}
-
-               # portage config variables and variables set directly by portage
-               unset ACCEPT_LICENSE BAD BRACKET BUILD_PREFIX COLS \
-                       DISTCC_DIR DISTDIR DOC_SYMLINKS_DIR \
-                       EBUILD_FORCE_TEST EBUILD_MASTER_PID \
-                       ECLASS_DEPTH ENDCOL FAKEROOTKEY \
-                       GOOD HILITE HOME \
-                       LAST_E_CMD LAST_E_LEN LD_PRELOAD MISC_FUNCTIONS_ARGS MOPREFIX \
-                       NOCOLOR NORMAL PKGDIR PKGUSE PKG_LOGDIR PKG_TMPDIR \
-                       PORTAGE_BASHRCS_SOURCED PORTAGE_NONFATAL PORTAGE_QUIET \
-                       PORTAGE_SANDBOX_DENY PORTAGE_SANDBOX_PREDICT \
-                       PORTAGE_SANDBOX_READ PORTAGE_SANDBOX_WRITE PREROOTPATH \
-                       QA_INTERCEPTORS \
-                       RC_DEFAULT_INDENT RC_DOT_PATTERN RC_ENDCOL RC_INDENTATION  \
-                       ROOT ROOTPATH RPMDIR TEMP TMP TMPDIR USE_EXPAND \
-                       WARN XARGS _RC_GET_KV_CACHE
-
-               # user config variables
-               unset DOC_SYMLINKS_DIR INSTALL_MASK PKG_INSTALL_MASK
-
-               declare -p
-               declare -fp
-               if [[ ${BASH_VERSINFO[0]} == 3 ]]; then
-                       export
-               fi
-       )
-}
-
 true
index f1db257f5d3c6a07c1b9a32fad240d4dec21eb2f..164b309e8381ed3af85b28d74d790674224a0b3b 100644 (file)
@@ -167,7 +167,7 @@ preprocess_ebuild_env() {
                # by the above source command. To protect ourselves, we override it
                # here with our own version. ${PORTAGE_BIN_PATH} is safe to use here
                # because it's already filtered above.
-               source "${PORTAGE_BIN_PATH}/isolated-functions.sh" || exit $?
+               source "${PORTAGE_BIN_PATH}/save-ebuild-env.sh" || exit $?
 
                # Rely on save_ebuild_env() to filter out any remaining variables
                # and functions that could interfere with the current environment.
diff --git a/bin/save-ebuild-env.sh b/bin/save-ebuild-env.sh
new file mode 100644 (file)
index 0000000..3bb8255
--- /dev/null
@@ -0,0 +1,93 @@
+#!/bin/bash
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+# @FUNCTION: save_ebuild_env
+# @DESCRIPTION:
+# echo the current environment to stdout, filtering out redundant info.
+#
+# --exclude-init-phases causes pkg_nofetch and src_* phase functions to
+# be excluded from the output. These function are not needed for installation
+# or removal of the packages, and can therefore be safely excluded.
+#
+save_ebuild_env() {
+       (
+       if has --exclude-init-phases $* ; then
+               unset S _E_DOCDESTTREE_ _E_EXEDESTTREE_
+               if [[ -n $PYTHONPATH ]] ; then
+                       export PYTHONPATH=${PYTHONPATH/${PORTAGE_PYM_PATH}:}
+                       [[ -z $PYTHONPATH ]] && unset PYTHONPATH
+               fi
+       fi
+
+       # misc variables inherited from the calling environment
+       unset COLORTERM DISPLAY EDITOR LESS LESSOPEN LOGNAME LS_COLORS PAGER \
+               TERM TERMCAP USER ftp_proxy http_proxy no_proxy
+
+       # other variables inherited from the calling environment
+       unset CVS_RSH ECHANGELOG_USER GPG_AGENT_INFO \
+       SSH_AGENT_PID SSH_AUTH_SOCK STY WINDOW XAUTHORITY
+
+       # CCACHE and DISTCC config
+       unset ${!CCACHE_*} ${!DISTCC_*}
+
+       # There's no need to bloat environment.bz2 with internally defined
+       # functions and variables, so filter them out if possible.
+
+       for x in pkg_setup pkg_nofetch src_unpack src_prepare src_configure \
+               src_compile src_test src_install pkg_preinst pkg_postinst \
+               pkg_prerm pkg_postrm ; do
+               unset -f default_$x _eapi{0,1,2,3,4}_$x
+       done
+       unset x
+
+       unset -f assert assert_sigpipe_ok dump_trace die diefunc \
+               quiet_mode vecho elog_base eqawarn elog \
+               esyslog einfo einfon ewarn eerror ebegin _eend eend KV_major \
+               KV_minor KV_micro KV_to_int get_KV unset_colors set_colors has \
+               has_phase_defined_up_to \
+               hasv hasq qa_source qa_call \
+               addread addwrite adddeny addpredict _sb_append_var \
+               use usev useq has_version portageq \
+               best_version use_with use_enable register_die_hook \
+               keepdir unpack strip_duplicate_slashes econf einstall \
+               dyn_setup dyn_unpack dyn_clean into insinto exeinto docinto \
+               insopts diropts exeopts libopts docompress \
+               abort_handler abort_prepare abort_configure abort_compile \
+               abort_test abort_install dyn_prepare dyn_configure \
+               dyn_compile dyn_test dyn_install \
+               dyn_preinst dyn_help debug-print debug-print-function \
+               debug-print-section inherit EXPORT_FUNCTIONS remove_path_entry \
+               save_ebuild_env filter_readonly_variables preprocess_ebuild_env \
+               set_unless_changed unset_unless_changed source_all_bashrcs \
+               ebuild_main ebuild_phase ebuild_phase_with_hooks \
+               _ebuild_arg_to_phase _ebuild_phase_funcs default \
+               _hasg _hasgq _unpack_tar \
+               ${QA_INTERCEPTORS}
+
+       # portage config variables and variables set directly by portage
+       unset ACCEPT_LICENSE BAD BRACKET BUILD_PREFIX COLS \
+               DISTCC_DIR DISTDIR DOC_SYMLINKS_DIR \
+               EBUILD_FORCE_TEST EBUILD_MASTER_PID \
+               ECLASS_DEPTH ENDCOL FAKEROOTKEY \
+               GOOD HILITE HOME \
+               LAST_E_CMD LAST_E_LEN LD_PRELOAD MISC_FUNCTIONS_ARGS MOPREFIX \
+               NOCOLOR NORMAL PKGDIR PKGUSE PKG_LOGDIR PKG_TMPDIR \
+               PORTAGE_BASHRCS_SOURCED PORTAGE_NONFATAL PORTAGE_QUIET \
+               PORTAGE_SANDBOX_DENY PORTAGE_SANDBOX_PREDICT \
+               PORTAGE_SANDBOX_READ PORTAGE_SANDBOX_WRITE PREROOTPATH \
+               QA_INTERCEPTORS \
+               RC_DEFAULT_INDENT RC_DOT_PATTERN RC_ENDCOL RC_INDENTATION  \
+               ROOT ROOTPATH RPMDIR TEMP TMP TMPDIR USE_EXPAND \
+               WARN XARGS _RC_GET_KV_CACHE
+
+       # user config variables
+       unset DOC_SYMLINKS_DIR INSTALL_MASK PKG_INSTALL_MASK
+
+       declare -p
+       declare -fp
+       if [[ ${BASH_VERSINFO[0]} == 3 ]]; then
+               export
+       fi
+       )
+}