Bug: https://bugs.gentoo.org/630422 --- bin/eapi.sh | 4 ++++ bin/ebuild.sh | 17 +++++++++++++++++ bin/save-ebuild-env.sh | 1 + 3 files changed, 22 insertions(+)
diff --git a/bin/eapi.sh b/bin/eapi.sh index 67563bed8..5d77c8daf 100644 --- a/bin/eapi.sh +++ b/bin/eapi.sh @@ -104,6 +104,10 @@ ___eapi_has_in_iuse() { [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] } +___eapi_has_sandbox_rm_functions() { + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-progress|6)$ ]] +} + ___eapi_has_master_repositories() { [[ ${1-${EAPI-0}} =~ ^(5-progress)$ ]] } diff --git a/bin/ebuild.sh b/bin/ebuild.sh index d63b0a0ba..9194d21d7 100755 --- a/bin/ebuild.sh +++ b/bin/ebuild.sh @@ -147,6 +147,17 @@ __sb_append_var() { [[ -z $1 || -n $2 ]] && die "Usage: add$(LC_ALL=C tr "[:upper:]" "[:lower:]" <<< "${_v}") <colon-delimited list of paths>" export ${var}="${!var:+${!var}:}$1" } +__sb_remove_var() { + local _v=$1 ; shift + local var="SANDBOX_${_v}" + [[ -z $1 || -n $2 ]] && die "Usage: add$(LC_ALL=C tr "[:upper:]" "[:lower:]" <<< "${_v}") <directory>" + local vv=:${!var}: + vv=${vv//:$1:/} + # strip leading and trailing colon now + vv=${vv##:} + vv=${vv%%:} + export ${var}="${vv}" +} # bash-4 version: # local var="SANDBOX_${1^^}" # addread() { __sb_append_var ${0#add} "$@" ; } @@ -154,6 +165,12 @@ addread() { __sb_append_var READ "$@" ; } addwrite() { __sb_append_var WRITE "$@" ; } adddeny() { __sb_append_var DENY "$@" ; } addpredict() { __sb_append_var PREDICT "$@" ; } +if ___eapi_has_sandbox_rm_functions; then + rmread() { __sb_remove_var READ "$@" ; } + rmwrite() { __sb_remove_var WRITE "$@" ; } + rmdeny() { __sb_remove_var DENY "$@" ; } + rmpredict() { __sb_remove_var PREDICT "$@" ; } +fi addwrite "${PORTAGE_TMPDIR}" addread "/:${PORTAGE_TMPDIR}" diff --git a/bin/save-ebuild-env.sh b/bin/save-ebuild-env.sh index e5ae8af88..9bd0445e2 100644 --- a/bin/save-ebuild-env.sh +++ b/bin/save-ebuild-env.sh @@ -55,6 +55,7 @@ __save_ebuild_env() { __has_phase_defined_up_to \ hasv hasq __qa_source __qa_call \ addread addwrite adddeny addpredict __sb_append_var \ + rmread rmwrite rmdeny rmpredict __sb_remove_var \ use usev useq has_version portageq \ best_version use_with use_enable register_die_hook \ unpack __strip_duplicate_slashes econf einstall \ -- 2.16.2