Re: [gentoo-portage-dev] [PATCH eapi6-pt2 v2 3/6] Add sandbox directory removal functions for EAPI 7

2018-03-09 Thread Ulrich Mueller
> On Fri, 9 Mar 2018, Michał Górny wrote:

> @@ -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

See my message to gentoo-pms [1], where I suggest to omit this feature
from EAPI 7. We should rather rethink if this is the best possible
interface.

Ulrich

[1] 
https://archives.gentoo.org/gentoo-pms/message/cf4bd0266f09245c02470e4fa3810947


pgpnhbMUIm3Z5.pgp
Description: PGP signature


[gentoo-portage-dev] [PATCH eapi6-pt2 v2 3/6] Add sandbox directory removal functions for EAPI 7

2018-03-08 Thread Michał Górny
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