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}") "
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}") "
+ 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