1 |
Bug: https://bugs.gentoo.org/630422 |
2 |
--- |
3 |
bin/eapi.sh | 4 ++++ |
4 |
bin/ebuild.sh | 17 +++++++++++++++++ |
5 |
bin/save-ebuild-env.sh | 1 + |
6 |
3 files changed, 22 insertions(+) |
7 |
|
8 |
diff --git a/bin/eapi.sh b/bin/eapi.sh |
9 |
index 67563bed8..5d77c8daf 100644 |
10 |
--- a/bin/eapi.sh |
11 |
+++ b/bin/eapi.sh |
12 |
@@ -104,6 +104,10 @@ ___eapi_has_in_iuse() { |
13 |
[[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] |
14 |
} |
15 |
|
16 |
+___eapi_has_sandbox_rm_functions() { |
17 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-progress|6)$ ]] |
18 |
+} |
19 |
+ |
20 |
___eapi_has_master_repositories() { |
21 |
[[ ${1-${EAPI-0}} =~ ^(5-progress)$ ]] |
22 |
} |
23 |
diff --git a/bin/ebuild.sh b/bin/ebuild.sh |
24 |
index d63b0a0ba..47894b0e6 100755 |
25 |
--- a/bin/ebuild.sh |
26 |
+++ b/bin/ebuild.sh |
27 |
@@ -147,6 +147,17 @@ __sb_append_var() { |
28 |
[[ -z $1 || -n $2 ]] && die "Usage: add$(LC_ALL=C tr "[:upper:]" "[:lower:]" <<< "${_v}") <colon-delimited list of paths>" |
29 |
export ${var}="${!var:+${!var}:}$1" |
30 |
} |
31 |
+__sb_remove_var() { |
32 |
+ local _v=$1 ; shift |
33 |
+ local var="SANDBOX_${_v}" |
34 |
+ [[ -z $1 || -n $2 ]] && die "Usage: add$(LC_ALL=C tr "[:upper:]" "[:lower:]" <<< "${_v}") <directory>" |
35 |
+ local vv=:${!var}: |
36 |
+ vv=${vv//:$1:/} |
37 |
+ # strip leading and trailing colon now |
38 |
+ vv=${vv##:} |
39 |
+ vv=${vv%%:} |
40 |
+ export ${var}="${vv}" |
41 |
+} |
42 |
# bash-4 version: |
43 |
# local var="SANDBOX_${1^^}" |
44 |
# addread() { __sb_append_var ${0#add} "$@" ; } |
45 |
@@ -154,6 +165,12 @@ addread() { __sb_append_var READ "$@" ; } |
46 |
addwrite() { __sb_append_var WRITE "$@" ; } |
47 |
adddeny() { __sb_append_var DENY "$@" ; } |
48 |
addpredict() { __sb_append_var PREDICT "$@" ; } |
49 |
+if ___eapi_has_sandbox_rm_functions; then |
50 |
+ rmread() { __sb_remove_var READ "$@" ; } |
51 |
+ rmwrite() { __sb_remove_var WRITE "$@" ; } |
52 |
+ rmdeny() { __sb_remove_var DENY "$@" ; } |
53 |
+ rmpredict() { __sb_remove_var PREDICT "$@" ; } |
54 |
+fi |
55 |
|
56 |
addwrite "${PORTAGE_TMPDIR}" |
57 |
addread "/:${PORTAGE_TMPDIR}" |
58 |
diff --git a/bin/save-ebuild-env.sh b/bin/save-ebuild-env.sh |
59 |
index e5ae8af88..9bd0445e2 100644 |
60 |
--- a/bin/save-ebuild-env.sh |
61 |
+++ b/bin/save-ebuild-env.sh |
62 |
@@ -55,6 +55,7 @@ __save_ebuild_env() { |
63 |
__has_phase_defined_up_to \ |
64 |
hasv hasq __qa_source __qa_call \ |
65 |
addread addwrite adddeny addpredict __sb_append_var \ |
66 |
+ rmread rmwrite rmdeny rmpredict __sb_remove_var \ |
67 |
use usev useq has_version portageq \ |
68 |
best_version use_with use_enable register_die_hook \ |
69 |
unpack __strip_duplicate_slashes econf einstall \ |
70 |
-- |
71 |
2.16.2 |