* [gentoo-portage-dev] [PATCH 10/13] Add tentative EAPI6 absolute path support to unpack()
@ 2014-08-18 17:56 99% ` Michał Górny
0 siblings, 0 replies; 1+ results
From: Michał Górny @ 2014-08-18 17:56 UTC (permalink / raw
To: gentoo-portage-dev; +Cc: Michał Górny
Add support for absolute paths in unpack(). Allow subdirectory-level
relative paths not to start with './'.
---
bin/eapi.sh | 4 ++++
bin/phase-helpers.sh | 25 ++++++++++++++++++-------
2 files changed, 22 insertions(+), 7 deletions(-)
diff --git a/bin/eapi.sh b/bin/eapi.sh
index 878f8e7..6716b1c 100644
--- a/bin/eapi.sh
+++ b/bin/eapi.sh
@@ -162,6 +162,10 @@ ___eapi_unpack_is_case_sensitive() {
[[ ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend)$ ]]
}
+___eapi_unpack_supports_absolute_paths() {
+ [[ ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend)$ ]]
+}
+
# OTHERS
___eapi_enables_failglob_in_global_scope() {
diff --git a/bin/phase-helpers.sh b/bin/phase-helpers.sh
index 0be79fd..60f7a39 100644
--- a/bin/phase-helpers.sh
+++ b/bin/phase-helpers.sh
@@ -276,14 +276,25 @@ unpack() {
y=${y##*.}
y_insensitive=$(LC_ALL=C tr "[:upper:]" "[:lower:]" <<< "${y}")
- if [[ ${x} == "./"* ]] ; then
- srcdir=""
- elif [[ ${x} == ${DISTDIR%/}/* ]] ; then
- die "Arguments to unpack() cannot begin with \${DISTDIR}."
- elif [[ ${x} == "/"* ]] ; then
- die "Arguments to unpack() cannot be absolute"
+ # wrt PMS 11.3.3.13 Misc Commands
+ if [[ ${x} != */* ]]; then
+ # filename without path of any kind
+ srcdir=${DISTDIR}/
+ elif [[ ${x} == ./* ]]; then
+ # relative path starting with './'
+ srcdir=
else
- srcdir="${DISTDIR}/"
+ # non-'./' filename with path of some kind
+ if ___eapi_unpack_supports_absolute_paths; then
+ # EAPI 6 allows absolute and deep relative paths
+ srcdir=
+ elif [[ ${x} == ${DISTDIR%/}/* ]]; then
+ die "Arguments to unpack() cannot begin with \${DISTDIR} in EAPI ${EAPI}"
+ elif [[ ${x} == /* ]] ; then
+ die "Arguments to unpack() cannot be absolute in EAPI ${EAPI}"
+ else
+ die "Relative paths to unpack() must be prefixed with './' in EAPI ${EAPI}"
+ fi
fi
[[ ! -s ${srcdir}${x} ]] && die "${x} does not exist"
--
2.0.4
^ permalink raw reply related [relevance 99%]
Results 1-1 of 1 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2014-08-18 17:56 [gentoo-portage-dev] [PATCHES] Initial EAPI6 patch set for review Michał Górny
2014-08-18 17:56 99% ` [gentoo-portage-dev] [PATCH 10/13] Add tentative EAPI6 absolute path support to unpack() Michał Górny
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox