-
Notifications
You must be signed in to change notification settings - Fork 261
/
Copy pathsave-ebuild-env.sh
138 lines (124 loc) · 4.95 KB
/
save-ebuild-env.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#!/usr/bin/env bash
# Copyright 1999-2021 Gentoo Authors
# 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_DESTTREE __E_INSDESTTREE __E_DOCDESTTREE __E_EXEDESTTREE \
PORTAGE_DOCOMPRESS_SIZE_LIMIT PORTAGE_DOCOMPRESS \
PORTAGE_DOCOMPRESS_SKIP PORTAGE_DOSTRIP PORTAGE_DOSTRIP_SKIP
if [[ -n ${PYTHONPATH} &&
${PYTHONPATH%%:*} -ef ${PORTAGE_PYM_PATH} ]] ; then
if [[ ${PYTHONPATH} == *:* ]] ; then
export PYTHONPATH=${PYTHONPATH#*:}
else
unset PYTHONPATH
fi
fi
# These variables contains build host specific configuration. We
# want binpkgs generated on different sized hosts to be
# identical, so strip them from the binpkg. It's also not needed
# for installing / removing a package.
unset MAKEOPTS NINJAOPTS
# These variables are constantly changing. Strip them so we
# don't introduce non-reproducible data into the binpkg.
unset EPOCHREALTIME EPOCHSECONDS SRANDOM
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 https_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 pkg_config pkg_info pkg_pretend ; do
unset -f default_${x} __eapi{0,1,2,3,4}_${x}
done
unset x
unset -f assert __assert_sigpipe_ok \
__dump_trace die \
__quiet_mode __vecho __elog_base eqawarn elog \
einfo einfon ewarn eerror ebegin __eend eend KV_major \
KV_minor KV_micro KV_to_int get_KV 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 \
unpack __strip_duplicate_slashes econf einstall \
__dyn_setup __dyn_unpack __dyn_clean \
into insinto exeinto docinto \
insopts diropts exeopts libopts docompress dostrip \
__abort_handler __abort_prepare __abort_configure __abort_compile \
__abort_test __abort_install __dyn_prepare __dyn_configure \
__dyn_compile __dyn_test __dyn_install \
__dyn_pretend __dyn_help \
debug-print debug-print-function \
debug-print-section __helpers_die inherit EXPORT_FUNCTIONS \
nonfatal register_success_hook \
__hasg __hasgq \
__save_ebuild_env __set_colors __filter_readonly_variables \
__preprocess_ebuild_env \
__repo_attr __source_all_bashrcs \
__ebuild_main __ebuild_phase __ebuild_phase_with_hooks \
__ebuild_arg_to_phase __ebuild_phase_funcs default \
__unpack_tar __unset_colors \
__source_env_files __try_source __check_bash_version \
__bashpid __start_distcc \
__eqaquote __eqatag \
${QA_INTERCEPTORS}
___eapi_has_usex && unset -f usex
# Clear out the triple underscore namespace as it is reserved by the PM.
while IFS=' ' read -r _ _ REPLY; do
if [[ ${REPLY} == ___* ]]; then
unset -f "${REPLY}"
fi
done < <(declare -F)
unset -v REPLY "${!___@}"
# portage config variables and variables set directly by portage
unset ACCEPT_LICENSE BUILD_PREFIX COLS \
DISTDIR DOC_SYMLINKS_DIR \
EBUILD_FORCE_TEST EBUILD_MASTER_PID \
ECLASS_DEPTH ENDCOL FAKEROOTKEY \
HOME \
LAST_E_CMD LAST_E_LEN LD_PRELOAD MISC_FUNCTIONS_ARGS MOPREFIX \
NOCOLOR NO_COLOR PKGDIR PKGUSE PKG_LOGDIR PKG_TMPDIR \
PORTAGE_BASHRC_FILES PORTAGE_BASHRCS_SOURCED \
PORTAGE_COLOR_BAD PORTAGE_COLOR_BRACKET PORTAGE_COLOR_ERR \
PORTAGE_COLOR_GOOD PORTAGE_COLOR_HILITE PORTAGE_COLOR_INFO \
PORTAGE_COLOR_LOG PORTAGE_COLOR_NORMAL PORTAGE_COLOR_QAWARN \
PORTAGE_COLOR_WARN \
PORTAGE_COMPRESS PORTAGE_COMPRESS_EXCLUDE_SUFFIXES \
PORTAGE_DOHTML_UNWARNED_SKIPPED_EXTENSIONS \
PORTAGE_DOHTML_UNWARNED_SKIPPED_FILES \
PORTAGE_DOHTML_WARN_ON_SKIPPED_FILES \
PORTAGE_NONFATAL PORTAGE_QUIET \
PORTAGE_SANDBOX_DENY PORTAGE_SANDBOX_PREDICT \
PORTAGE_SANDBOX_READ PORTAGE_SANDBOX_WRITE \
PORTAGE_SOCKS5_PROXY PREROOTPATH \
QA_INTERCEPTORS \
RC_DEFAULT_INDENT RC_DOT_PATTERN RC_ENDCOL RC_INDENTATION \
ROOT ROOTPATH RPMDIR TEMP TMP TMPDIR USE_EXPAND \
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
)
}