#!/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_ \ PORTAGE_DOCOMPRESS PORTAGE_DOCOMPRESS_SKIP if [[ -n $PYTHONPATH && ${PYTHONPATH%%:*} -ef $PORTAGE_PYM_PATH ]] ; then if [[ $PYTHONPATH == *:* ]] ; then export PYTHONPATH=${PYTHONPATH#*:} else unset PYTHONPATH fi 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_pretend dyn_help debug-print debug-print-function \ debug-print-section helpers_die inherit EXPORT_FUNCTIONS \ nonfatal register_success_hook 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_COMPRESS_EXCLUDE_SUFFIXES \ 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 ) }