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..47894b0e6 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


Reply via email to