public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/portage:master commit in: bin/ebuild-helpers/, bin/install-qa-check.d/, bin/
@ 2018-03-12 20:12 Michał Górny
  0 siblings, 0 replies; only message in thread
From: Michał Górny @ 2018-03-12 20:12 UTC (permalink / raw
  To: gentoo-commits

commit:     244a62a4f275e4282dc040be3c049e593c36c0ce
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Mar  7 15:00:10 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Mar 12 20:11:44 2018 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=244a62a4

Fix uses of D/ED to account for no trailing slash

Fix all uses of D/ED to account for trailing slash not being present
in EAPI 7. While at it, also remove some duplicate slashes.

Reviewed-by: Zac Medico <zmedico <AT> gentoo.org>

 bin/ebuild-helpers/dobin           |  6 +++---
 bin/ebuild-helpers/dodir           |  4 ++--
 bin/ebuild-helpers/dodoc           |  2 +-
 bin/ebuild-helpers/doexe           |  8 ++++----
 bin/ebuild-helpers/dohard          |  6 +++---
 bin/ebuild-helpers/doinfo          |  8 ++++----
 bin/ebuild-helpers/doins           |  2 +-
 bin/ebuild-helpers/dolib           |  2 +-
 bin/ebuild-helpers/doman           |  8 ++++----
 bin/ebuild-helpers/domo            |  6 +++---
 bin/ebuild-helpers/dosbin          |  6 +++---
 bin/ebuild-helpers/dosed           |  4 ++--
 bin/ebuild-helpers/dosym           |  8 ++++----
 bin/ebuild-helpers/ecompressdir    | 25 ++++++++++++-----------
 bin/ebuild-helpers/fowners         |  4 ++--
 bin/ebuild-helpers/fperms          |  4 ++--
 bin/ebuild-helpers/keepdir         |  6 +++---
 bin/ebuild-helpers/prepalldocs     |  4 ++--
 bin/ebuild-helpers/prepallinfo     |  4 ++--
 bin/ebuild-helpers/prepinfo        | 12 +++++------
 bin/ebuild-helpers/prepman         | 10 ++++-----
 bin/ebuild-helpers/prepstrip       | 17 +++++++--------
 bin/install-qa-check.d/60udev      |  6 +++---
 bin/install-qa-check.d/80libraries | 22 ++++++++++----------
 bin/misc-functions.sh              | 24 +++++++++++-----------
 bin/phase-helpers.sh               | 42 +++++++++++++++++++-------------------
 26 files changed, 126 insertions(+), 124 deletions(-)

diff --git a/bin/ebuild-helpers/dobin b/bin/ebuild-helpers/dobin
index f43871f49..975067fb1 100755
--- a/bin/ebuild-helpers/dobin
+++ b/bin/ebuild-helpers/dobin
@@ -21,15 +21,15 @@ else
 	_E_DESTTREE_=${DESTTREE}
 fi
 
-if [[ ! -d ${ED}${_E_DESTTREE_}/bin ]] ; then
-	install -d "${ED}${_E_DESTTREE_}/bin" || { __helpers_die "${0##*/}: failed to install ${ED}${_E_DESTTREE_}/bin"; exit 2; }
+if [[ ! -d ${ED%/}/${_E_DESTTREE_#/}/bin ]] ; then
+	install -d "${ED%/}/${_E_DESTTREE_#/}/bin" || { __helpers_die "${0##*/}: failed to install ${ED%/}/${_E_DESTTREE_#/}/bin"; exit 2; }
 fi
 
 ret=0
 
 for x in "$@" ; do
 	if [[ -e ${x} ]] ; then
-		install -m0755 -o ${PORTAGE_INST_UID:-0} -g ${PORTAGE_INST_GID:-0} "${x}" "${ED}${_E_DESTTREE_}/bin"
+		install -m0755 -o ${PORTAGE_INST_UID:-0} -g ${PORTAGE_INST_GID:-0} "${x}" "${ED%/}/${_E_DESTTREE_#/}/bin"
 	else
 		echo "!!! ${0##*/}: $x does not exist" 1>&2
 		false

diff --git a/bin/ebuild-helpers/dodir b/bin/ebuild-helpers/dodir
index eed2c8b8f..9b376c73f 100755
--- a/bin/ebuild-helpers/dodir
+++ b/bin/ebuild-helpers/dodir
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 1999-2012 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
@@ -8,7 +8,7 @@ if ! ___eapi_has_prefix_variables; then
 	ED=${D}
 fi
 
-install -d ${DIROPTIONS} "${@/#/${ED}/}"
+install -d ${DIROPTIONS} "${@/#/${ED%/}/}"
 ret=$?
 [[ $ret -ne 0 ]] && __helpers_die "${0##*/} failed"
 exit $ret

diff --git a/bin/ebuild-helpers/dodoc b/bin/ebuild-helpers/dodoc
index 75029eb20..84936e400 100755
--- a/bin/ebuild-helpers/dodoc
+++ b/bin/ebuild-helpers/dodoc
@@ -17,7 +17,7 @@ if ! ___eapi_has_prefix_variables; then
 	ED=${D}
 fi
 
-dir="${ED}usr/share/doc/${PF}/${_E_DOCDESTTREE_}"
+dir="${ED%/}/usr/share/doc/${PF}/${_E_DOCDESTTREE_#/}"
 if [ ! -d "${dir}" ] ; then
 	install -d "${dir}"
 fi

diff --git a/bin/ebuild-helpers/doexe b/bin/ebuild-helpers/doexe
index 8c4b9e97c..152c13bf6 100755
--- a/bin/ebuild-helpers/doexe
+++ b/bin/ebuild-helpers/doexe
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 1999-2012 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
@@ -13,8 +13,8 @@ if ! ___eapi_has_prefix_variables; then
 	ED=${D}
 fi
 
-if [[ ! -d ${ED}${_E_EXEDESTTREE_} ]] ; then
-	install -d "${ED}${_E_EXEDESTTREE_}"
+if [[ ! -d ${ED%/}/${_E_EXEDESTTREE_#/} ]] ; then
+	install -d "${ED%/}/${_E_EXEDESTTREE_#/}"
 fi
 
 TMP=$(mktemp -d "${T}/.doexe_tmp_XXXXXX")
@@ -32,7 +32,7 @@ for x in "$@" ; do
 		mysrc="${x}"
 	fi
 	if [ -e "$mysrc" ] ; then
-		install $EXEOPTIONS "$mysrc" "$ED$_E_EXEDESTTREE_"
+		install ${EXEOPTIONS} "$mysrc" "${ED%/}/${_E_EXEDESTTREE_#/}"
 	else
 		echo "!!! ${0##*/}: $mysrc does not exist" 1>&2
 		false

diff --git a/bin/ebuild-helpers/dohard b/bin/ebuild-helpers/dohard
index 8a93fad4f..66e2604b0 100755
--- a/bin/ebuild-helpers/dohard
+++ b/bin/ebuild-helpers/dohard
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 1999-2012 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
@@ -19,6 +19,6 @@ if ! ___eapi_has_prefix_variables; then
 fi
 
 destdir=${2%/*}
-[[ ! -d ${ED}${destdir} ]] && dodir "${destdir}"
+[[ ! -d ${ED%/}/${destdir#/} ]] && dodir "${destdir}"
 
-exec ln -f "${ED}$1" "${ED}$2"
+exec ln -f "${ED%/}/${1#/}" "${ED%/}/${2#/}"

diff --git a/bin/ebuild-helpers/doinfo b/bin/ebuild-helpers/doinfo
index 24b5ddd89..30a38e055 100755
--- a/bin/ebuild-helpers/doinfo
+++ b/bin/ebuild-helpers/doinfo
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 1999-2012 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
@@ -13,11 +13,11 @@ if ! ___eapi_has_prefix_variables; then
 	ED=${D}
 fi
 
-if [[ ! -d ${ED}usr/share/info ]] ; then
-	install -d "${ED}usr/share/info" || { __helpers_die "${0##*/}: failed to install ${ED}usr/share/info"; exit 1; }
+if [[ ! -d ${ED%/}/usr/share/info ]] ; then
+	install -d "${ED%/}/usr/share/info" || { __helpers_die "${0##*/}: failed to install ${ED%/}/usr/share/info"; exit 1; }
 fi
 
-install -m0644 "$@" "${ED}usr/share/info"
+install -m0644 "$@" "${ED%/}/usr/share/info"
 rval=$?
 if [ $rval -ne 0 ] ; then
 	for x in "$@" ; do

diff --git a/bin/ebuild-helpers/doins b/bin/ebuild-helpers/doins
index 327d409a4..fb5fc7c7c 100755
--- a/bin/ebuild-helpers/doins
+++ b/bin/ebuild-helpers/doins
@@ -83,7 +83,7 @@ fi
 
 DOINS_ARGS+=(
 	"--helper=${helper}"
-	"--dest=${ED}${_E_INSDESTTREE_}"
+	"--dest=${ED%/}/${_E_INSDESTTREE_#/}"
 )
 
 # Explicitly set PYTHONPATH to non empty.

diff --git a/bin/ebuild-helpers/dolib b/bin/ebuild-helpers/dolib
index 2800fad76..bd8eebca7 100755
--- a/bin/ebuild-helpers/dolib
+++ b/bin/ebuild-helpers/dolib
@@ -29,7 +29,7 @@ fi
 unset LIBDIR_VAR
 # we need this to default to lib so that things dont break
 CONF_LIBDIR=${CONF_LIBDIR:-lib}
-libdir="${ED}${_E_DESTTREE_}/${CONF_LIBDIR}"
+libdir="${ED%/}/${_E_DESTTREE_#/}/${CONF_LIBDIR}"
 
 
 if [[ $# -lt 1 ]] ; then

diff --git a/bin/ebuild-helpers/doman b/bin/ebuild-helpers/doman
index 43d29f22e..9cfc89df0 100755
--- a/bin/ebuild-helpers/doman
+++ b/bin/ebuild-helpers/doman
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 1999-2012 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
@@ -49,11 +49,11 @@ for x in "$@" ; do
 
 	if [[ ${mandir} == *man[0-9n] ]] ; then
 		if [[ -s ${x} ]] ; then
-			if [[ ! -d ${ED}/usr/share/man/${mandir} ]] ; then
-				install -d "${ED}/usr/share/man/${mandir}"
+			if [[ ! -d ${ED%/}/usr/share/man/${mandir} ]] ; then
+				install -d "${ED%/}/usr/share/man/${mandir}"
 			fi
 
-			install -m0644 "${x}" "${ED}/usr/share/man/${mandir}/${name}"
+			install -m0644 "${x}" "${ED%/}/usr/share/man/${mandir}/${name}"
 			((ret|=$?))
 		elif [[ ! -e ${x} ]] ; then
 			echo "!!! ${0##*/}: $x does not exist" 1>&2

diff --git a/bin/ebuild-helpers/domo b/bin/ebuild-helpers/domo
index 70f93d61e..2e95eb751 100755
--- a/bin/ebuild-helpers/domo
+++ b/bin/ebuild-helpers/domo
@@ -27,8 +27,8 @@ if ! ___eapi_domo_respects_into; then
 	_E_DESTTREE_=/usr
 fi
 
-if [ ! -d "${ED}${_E_DESTTREE_}/share/locale" ] ; then
-	install -d "${ED}${_E_DESTTREE_}/share/locale/"
+if [ ! -d "${ED%/}/${_E_DESTTREE_#/}/share/locale" ] ; then
+	install -d "${ED%/}/${_E_DESTTREE_#/}/share/locale/"
 fi
 
 ret=0
@@ -36,7 +36,7 @@ ret=0
 for x in "$@" ; do
 	if [ -e "${x}" ] ; then
 		mytiny="${x##*/}"
-		mydir="${ED}${_E_DESTTREE_}/share/locale/${mytiny%.*}/LC_MESSAGES"
+		mydir="${ED%/}/${_E_DESTTREE_#/}/share/locale/${mytiny%.*}/LC_MESSAGES"
 		if [ ! -d "${mydir}" ] ; then
 			install -d "${mydir}"
 		fi

diff --git a/bin/ebuild-helpers/dosbin b/bin/ebuild-helpers/dosbin
index f698f6fbb..ac0ab37ca 100755
--- a/bin/ebuild-helpers/dosbin
+++ b/bin/ebuild-helpers/dosbin
@@ -21,15 +21,15 @@ else
 	_E_DESTTREE_=${DESTTREE}
 fi
 
-if [[ ! -d ${ED}${_E_DESTTREE_}/sbin ]] ; then
-	install -d "${ED}${_E_DESTTREE_}/sbin" || { __helpers_die "${0##*/}: failed to install ${ED}${_E_DESTTREE_}/sbin"; exit 2; }
+if [[ ! -d ${ED%/}/${_E_DESTTREE_#/}/sbin ]] ; then
+	install -d "${ED%/}/${_E_DESTTREE_#/}/sbin" || { __helpers_die "${0##*/}: failed to install ${ED%/}/${_E_DESTTREE_#/}/sbin"; exit 2; }
 fi
 
 ret=0
 
 for x in "$@" ; do
 	if [[ -e ${x} ]] ; then
-		install -m0755 -o ${PORTAGE_INST_UID:-0} -g ${PORTAGE_INST_GID:-0} "${x}" "${ED}${_E_DESTTREE_}/sbin"
+		install -m0755 -o ${PORTAGE_INST_UID:-0} -g ${PORTAGE_INST_GID:-0} "${x}" "${ED%/}/${_E_DESTTREE_#/}/sbin"
 	else
 		echo "!!! ${0##*/}: ${x} does not exist" 1>&2
 		false

diff --git a/bin/ebuild-helpers/dosed b/bin/ebuild-helpers/dosed
index 1e10d129d..37c8a29d3 100755
--- a/bin/ebuild-helpers/dosed
+++ b/bin/ebuild-helpers/dosed
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 1999-2012 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
@@ -23,7 +23,7 @@ file_found=0
 mysed="s:${ED}::g"
 
 for x in "$@" ; do
-	y=$ED${x#/}
+	y=${ED%/}/${x#/}
 	if [ -e "${y}" ] ; then
 		if [ -f "${y}" ] ; then
 			file_found=1

diff --git a/bin/ebuild-helpers/dosym b/bin/ebuild-helpers/dosym
index e96039146..d5a651bf5 100755
--- a/bin/ebuild-helpers/dosym
+++ b/bin/ebuild-helpers/dosym
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
@@ -13,13 +13,13 @@ if ! ___eapi_has_prefix_variables; then
 	ED=${D}
 fi
 
-if [[ ${2} == */ ]] || [[ -d ${ED}${2} && ! -L ${ED}${2} ]] ; then
+if [[ ${2} == */ ]] || [[ -d ${ED%/}/${2#/} && ! -L ${ED%/}/${2#/} ]] ; then
 	# implicit basename not allowed by PMS (bug #379899)
 	__helpers_die "${0##*/}: dosym target omits basename: '${2}'"
 fi
 
 destdir=${2%/*}
-[[ ! -d ${ED}${destdir} ]] && dodir "${destdir}"
+[[ ! -d ${ED%/}/${destdir#/} ]] && dodir "${destdir}"
 target="${1}"
 # DEPRECATED HACK: when absolute, prefix with offset for Gentoo Prefix
 # (but only if ${EPREFIX} is not there already)
@@ -29,7 +29,7 @@ if [[ ${target:0:1} == "/" && ${target}/ != "${EPREFIX}"/* ]]; then
 	eqawarn "       please fix the ebuild to use \${EPREFIX} explicitly."
 	target="${EPREFIX}${target}"
 fi
-ln -snf "${target}" "${ED}${2}"
+ln -snf "${target}" "${ED%/}/${2#/}"
 
 ret=$?
 [[ $ret -ne 0 ]] && __helpers_die "${0##*/} failed"

diff --git a/bin/ebuild-helpers/ecompressdir b/bin/ebuild-helpers/ecompressdir
index 4f57262e9..fb4c39f2b 100755
--- a/bin/ebuild-helpers/ecompressdir
+++ b/bin/ebuild-helpers/ecompressdir
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 1999-2013 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 source "${PORTAGE_BIN_PATH}"/helper-functions.sh || exit 1
@@ -19,15 +19,16 @@ while [[ $# -gt 0 ]] ; do
 	--ignore)
 		shift
 		for skip in "$@" ; do
-			[[ -d ${ED}${skip} || -f ${ED}${skip} ]] \
-				&& >> "${ED}${skip}.ecompress.skip"
+			[[ -d ${ED%/}/${skip#/} || -f ${ED%/}/${skip#/} ]] \
+				&& >> "${ED%/}/${skip#/}.ecompress.skip"
 		done
 		exit 0
 		;;
 	--queue)
 		shift
+		set -- "${@#/}"
 		set -- "${@/%/.ecompress.dir}"
-		set -- "${@/#/${ED}}"
+		set -- "${@/#/${ED%/}/}"
 		ret=0
 		for x in "$@" ; do
 			# Stash the limit in the .dir file so we can reload it later.
@@ -40,7 +41,7 @@ while [[ $# -gt 0 ]] ; do
 	--dequeue)
 		[[ -n $2 ]] && __vecho "${0##*/}: --dequeue takes no additional arguments" 1>&2
 		find "${ED}" -name '*.ecompress.dir' -print0 \
-			| sed -e 's:\.ecompress\.dir::g' -e "s:${ED}:/:g" \
+			| sed -e 's:\.ecompress\.dir::g' -e "s:${ED%/}::g" \
 			| ${XARGS} -0 ecompressdir
 		find "${ED}" -name '*.ecompress.skip' -print0 | ${XARGS} -0 rm -f
 		exit 0
@@ -98,10 +99,10 @@ funk_up_dir() {
 		# absolute symlinks to files that aren't merged
 		# yet (bug #405327).
 		if [[ ${olddest} == /* ]] ; then
-			[ -e "${D}${olddest}" ] && continue
+			[ -e "${D%/}${olddest}" ] && continue
 			skip_dir_dest=${T}/ecompress-skip/${olddest#${EPREFIX}}
 		else
-			skip_dir_dest=${T}/ecompress-skip/${actual_dir#${ED}}/${brokenlink%/*}/${olddest}
+			skip_dir_dest=${T}/ecompress-skip/${actual_dir#${ED%/}}/${brokenlink%/*}/${olddest}
 		fi
 		[[ -e ${skip_dir_dest} ]] && continue
 		if [[ ${act} == "compress" ]] ; then
@@ -111,7 +112,7 @@ funk_up_dir() {
 			newdest=${olddest%${suffix}}
 		fi
 		if [[ "${newdest}" == /* ]] ; then
-			[[ -f "${D}${newdest}" ]] || continue
+			[[ -f "${D%/}${newdest}" ]] || continue
 		else
 			[[ -f "${dir}/${brokenlink%/*}/${newdest}" ]] || continue
 		fi
@@ -127,7 +128,7 @@ funk_up_dir() {
 	if (( indirection >= 100 )) ; then
 		# Protect against possibility of a bug triggering an endless loop.
 		eerror "ecompressdir: too many levels of indirection for" \
-			"'${actual_dir#${ED}}/${something_changed#./}'"
+			"'${actual_dir#${ED%/}}/${something_changed#./}'"
 		break
 	fi
 	done
@@ -171,9 +172,9 @@ __multijob_init
 
 for dir in "$@" ; do
 	dir=${dir#/}
-	dir="${ED}${dir}"
+	dir="${ED%/}/${dir#/}"
 	if [[ ! -d ${dir} ]] ; then
-		__vecho "${0##*/}: /${dir#${ED}} does not exist!"
+		__vecho "${0##*/}: /${dir#${ED%/}} does not exist!"
 		continue
 	fi
 	cd "${dir}"
@@ -212,7 +213,7 @@ for dir in "$@" ; do
 
 	# now lets do our work
 	if [[ -n ${suffix} ]] ; then
-		__vecho "${0##*/}: $(ecompress --bin) /${actual_dir#${ED}}"
+		__vecho "${0##*/}: $(ecompress --bin) /${actual_dir#${ED%/}}"
 		funk_up_dir "compress" "${suffix}" "ecompress" "${size_limit}"
 		: $(( ret |= $? ))
 	fi

diff --git a/bin/ebuild-helpers/fowners b/bin/ebuild-helpers/fowners
index 85f7fd614..68004210b 100755
--- a/bin/ebuild-helpers/fowners
+++ b/bin/ebuild-helpers/fowners
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 1999-2012 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
@@ -11,7 +11,7 @@ fi
 # we can't prefix all arguments because
 # chown takes random options
 slash="/"
-chown "${@/#${slash}/${ED}${slash}}"
+chown "${@/#${slash}/${ED%/}${slash}}"
 ret=$?
 
 [[ $ret -ne 0 ]] && __helpers_die "${0##*/} failed"

diff --git a/bin/ebuild-helpers/fperms b/bin/ebuild-helpers/fperms
index 297679cd0..c63a6abc3 100755
--- a/bin/ebuild-helpers/fperms
+++ b/bin/ebuild-helpers/fperms
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 1999-2012 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
@@ -11,7 +11,7 @@ fi
 # we can't prefix all arguments because
 # chmod takes random options
 slash="/"
-chmod "${@/#${slash}/${ED}${slash}}"
+chmod "${@/#${slash}/${ED%/}${slash}}"
 ret=$?
 [[ $ret -ne 0 ]] && __helpers_die "${0##*/} failed"
 exit $ret

diff --git a/bin/ebuild-helpers/keepdir b/bin/ebuild-helpers/keepdir
index e0c852d08..a3c0c151c 100755
--- a/bin/ebuild-helpers/keepdir
+++ b/bin/ebuild-helpers/keepdir
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 1999-2013 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
@@ -12,8 +12,8 @@ dodir "$@"
 ret=$?
 
 for x in "$@"; do
-	>> "${ED}${x}/.keep_${CATEGORY}_${PN}-${SLOT%/*}" || \
-		{ echo "!!! ${0##*/}: cannot write .keep in ${ED}${x}" 1>&2; ret=1; }
+	>> "${ED%/}/${x#/}/.keep_${CATEGORY}_${PN}-${SLOT%/*}" || \
+		{ echo "!!! ${0##*/}: cannot write .keep in ${ED%/}/${x#/}" 1>&2; ret=1; }
 done
 
 [[ ${ret} -ne 0 ]] && __helpers_die "${0##*/} failed"

diff --git a/bin/ebuild-helpers/prepalldocs b/bin/ebuild-helpers/prepalldocs
index cf63c64ed..6cdceb318 100755
--- a/bin/ebuild-helpers/prepalldocs
+++ b/bin/ebuild-helpers/prepalldocs
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 1999-2012 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
@@ -17,7 +17,7 @@ if ! ___eapi_has_prefix_variables; then
 	ED=${D}
 fi
 
-[[ -d ${ED}usr/share/doc ]] || exit 0
+[[ -d ${ED%/}/usr/share/doc ]] || exit 0
 
 ecompressdir --ignore /usr/share/doc/${PF}/html
 ecompressdir --queue /usr/share/doc

diff --git a/bin/ebuild-helpers/prepallinfo b/bin/ebuild-helpers/prepallinfo
index cdf149e43..34d6a74b7 100755
--- a/bin/ebuild-helpers/prepallinfo
+++ b/bin/ebuild-helpers/prepallinfo
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 1999-2012 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
@@ -8,6 +8,6 @@ if ! ___eapi_has_prefix_variables; then
 	ED=${D}
 fi
 
-[[ -d ${ED}usr/share/info ]] || exit 0
+[[ -d ${ED%/}/usr/share/info ]] || exit 0
 
 exec prepinfo

diff --git a/bin/ebuild-helpers/prepinfo b/bin/ebuild-helpers/prepinfo
index a64d144a3..eb1b6a7e3 100755
--- a/bin/ebuild-helpers/prepinfo
+++ b/bin/ebuild-helpers/prepinfo
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 1999-2012 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
@@ -11,14 +11,14 @@ fi
 if [[ -z $1 ]] ; then
 	infodir="/usr/share/info"
 else
-	if [[ -d ${ED}$1/share/info ]] ; then
-		infodir="$1/share/info"
+	if [[ -d ${ED%/}/${1#/}/share/info ]] ; then
+		infodir="${1#/}/share/info"
 	else
-		infodir="$1/info"
+		infodir="${1#/}/info"
 	fi
 fi
 
-if [[ ! -d ${ED}${infodir} ]] ; then
+if [[ ! -d ${ED%/}/${infodir#/} ]] ; then
 	if [[ -n $1 ]] ; then
 		__vecho "${0##*/}: '${infodir}' does not exist!"
 		exit 1
@@ -27,7 +27,7 @@ if [[ ! -d ${ED}${infodir} ]] ; then
 	fi
 fi
 
-find "${ED}${infodir}" -type d -print0 | while read -r -d $'\0' x ; do
+find "${ED%/}/${infodir#/}" -type d -print0 | while read -r -d $'\0' x ; do
 	for f in "${x}"/.keepinfodir*; do
 		[[ -e ${f} ]] && continue 2
 	done

diff --git a/bin/ebuild-helpers/prepman b/bin/ebuild-helpers/prepman
index e64acc0b0..5e9fe45b6 100755
--- a/bin/ebuild-helpers/prepman
+++ b/bin/ebuild-helpers/prepman
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 1999-2012 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 # Do not compress man pages which are smaller than this (in bytes). #169260
@@ -12,13 +12,13 @@ if ! ___eapi_has_prefix_variables; then
 fi
 
 if [[ -z $1 ]] ; then
-	mandir="${ED}usr/share/man"
+	mandir="${ED%/}/usr/share/man"
 else
-	mandir="${ED}$1/man"
+	mandir="${ED%/}/${1#/}/man"
 fi
 
 if [[ ! -d ${mandir} ]] ; then
-	eqawarn "QA Notice: prepman called with non-existent dir '${mandir#${ED}}'"
+	eqawarn "QA Notice: prepman called with non-existent dir '${mandir#${ED%/}}'"
 	exit 0
 fi
 
@@ -34,6 +34,6 @@ for subdir in "${mandir}"/man* "${mandir}"/*/man* ; do
 	[[ -d ${subdir} ]] && really_is_mandir=1 && break
 done
 
-[[ ${really_is_mandir} == 1 ]] && exec ecompressdir --limit ${SIZE_LIMIT} --queue "${mandir#${ED}}"
+[[ ${really_is_mandir} == 1 ]] && exec ecompressdir --limit ${SIZE_LIMIT} --queue "${mandir#${ED%/}}"
 
 exit 0

diff --git a/bin/ebuild-helpers/prepstrip b/bin/ebuild-helpers/prepstrip
index 929547ae5..9b895c60b 100755
--- a/bin/ebuild-helpers/prepstrip
+++ b/bin/ebuild-helpers/prepstrip
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 source "${PORTAGE_BIN_PATH}"/helper-functions.sh || exit 1
@@ -143,7 +143,8 @@ save_elf_debug() {
 	local x=$1
 	local inode_debug=$2
 	local splitdebug=$3
-	local y=${ED}usr/lib/debug/${x:${#D}}.debug
+	local d_noslash=${D%/}
+	local y=${ED%/}/usr/lib/debug/${x:${#d_noslash}}.debug
 
 	# dont save debug info twice
 	[[ ${x} == *".debug" ]] && return 0
@@ -177,7 +178,7 @@ save_elf_debug() {
 		buildid=$(${READELF} -n "${x}" 2>/dev/null | awk '/Build ID:/{ print $NF; exit }')
 	fi
 	if [[ -n ${buildid} ]] ; then
-		local buildid_dir="${ED}usr/lib/debug/.build-id/${buildid:0:2}"
+		local buildid_dir="${ED%/}/usr/lib/debug/.build-id/${buildid:0:2}"
 		local buildid_file="${buildid_dir}/${buildid:2}"
 		mkdir -p "${buildid_dir}"
 		[ -L "${buildid_file}".debug ] || ln -s "../../${x:${#D}}.debug" "${buildid_file}.debug"
@@ -254,7 +255,7 @@ if ! ${RESTRICT_binchecks} && ! ${RESTRICT_strip} ; then
 	# and start stripping the files ourselves.  The log parsing can be done in
 	# parallel though.
 	log=${tmpdir}/scanelf-already-stripped.log
-	scanelf -yqRBF '#k%F' -k '!.symtab' "$@" | sed -e "s#^${ED}##" > "${log}"
+	scanelf -yqRBF '#k%F' -k '!.symtab' "$@" | sed -e "s#^${ED%/}##" > "${log}"
 	(
 	__multijob_child_init
 	qa_var="QA_PRESTRIPPED_${ARCH/-/_}"
@@ -324,7 +325,7 @@ do
 		set -o noglob
 		strip_this=true
 		for m in $(eval echo ${STRIP_MASK}) ; do
-			[[ /${x#${ED}} == ${m} ]] && strip_this=false && break
+			[[ /${x#${ED%/}} == ${m} ]] && strip_this=false && break
 		done
 		set +o noglob
 	else
@@ -384,10 +385,10 @@ if [[ -s ${tmpdir}/debug.sources ]] && \
    ${debugedit_found}
 then
 	__vecho "installsources: rsyncing source files"
-	[[ -d ${D}${prepstrip_sources_dir} ]] || mkdir -p "${D}${prepstrip_sources_dir}"
+	[[ -d ${D%/}/${prepstrip_sources_dir#/} ]] || mkdir -p "${D%/}/${prepstrip_sources_dir#/}"
 	grep -zv '/<[^/>]*>$' "${tmpdir}"/debug.sources | \
 		(cd "${WORKDIR}"; LANG=C sort -z -u | \
-		rsync -tL0 --chmod=ugo-st,a+r,go-w,Da+x,Fa-x --files-from=- "${WORKDIR}/" "${D}${prepstrip_sources_dir}/" )
+		rsync -tL0 --chmod=ugo-st,a+r,go-w,Da+x,Fa-x --files-from=- "${WORKDIR}/" "${D%/}/${prepstrip_sources_dir#/}/" )
 
 	# Preserve directory structure.
 	# Needed after running save_elf_sources.
@@ -395,7 +396,7 @@ then
 	while read -r -d $'\0' emptydir
 	do
 		>> "${emptydir}"/.keepdir
-	done < <(find "${D}${prepstrip_sources_dir}/" -type d -empty -print0)
+	done < <(find "${D%/}/${prepstrip_sources_dir#/}/" -type d -empty -print0)
 fi
 
 cd "${T}"

diff --git a/bin/install-qa-check.d/60udev b/bin/install-qa-check.d/60udev
index 4327d069d..c48d7d598 100644
--- a/bin/install-qa-check.d/60udev
+++ b/bin/install-qa-check.d/60udev
@@ -3,10 +3,10 @@
 udev_check() {
 	set +f
 	local x f=
-	for x in "${ED}etc/udev/rules.d/"* "${ED}lib"*"/udev/rules.d/"* ; do
+	for x in "${ED%/}/etc/udev/rules.d/"* "${ED%/}/lib"*"/udev/rules.d/"* ; do
 		[[ -e ${x} ]] || continue
-		[[ ${x} == ${ED}lib/udev/rules.d/* ]] && continue
-		f+="  ${x#${ED}}\n"
+		[[ ${x} == ${ED%/}/lib/udev/rules.d/* ]] && continue
+		f+="  ${x#${ED%/}}\n"
 	done
 	if [[ -n $f ]] ; then
 		eqawarn "QA Notice: udev rules should be installed in /lib/udev/rules.d:"

diff --git a/bin/install-qa-check.d/80libraries b/bin/install-qa-check.d/80libraries
index e891b2d29..bbabc0eb9 100644
--- a/bin/install-qa-check.d/80libraries
+++ b/bin/install-qa-check.d/80libraries
@@ -6,7 +6,7 @@ scanelf_lib_check() {
 	# Check for shared libraries lacking SONAMEs
 	local qa_var="QA_SONAME_${ARCH/-/_}"
 	eval "[[ -n \${!qa_var} ]] && QA_SONAME=(\"\${${qa_var}[@]}\")"
-	f=$(scanelf -ByF '%S %p' "${ED}"{,usr/}lib*/lib*.so* | awk '$2 == "" { print }' | sed -e "s:^[[:space:]]${ED}:/:")
+	f=$(scanelf -ByF '%S %p' "${ED%/}"/{,usr/}lib*/lib*.so* | awk '$2 == "" { print }' | sed -e "s:^[[:space:]]${ED%/}/:/:")
 	if [[ -n ${f} ]] ; then
 		echo "${f}" > "${T}"/scanelf-missing-SONAME.log
 		if [[ "${QA_STRICT_SONAME-unset}" == unset ]] ; then
@@ -40,7 +40,7 @@ scanelf_lib_check() {
 	# Check for shared libraries lacking NEEDED entries
 	qa_var="QA_DT_NEEDED_${ARCH/-/_}"
 	eval "[[ -n \${!qa_var} ]] && QA_DT_NEEDED=(\"\${${qa_var}[@]}\")"
-	f=$(scanelf -ByF '%n %p' "${ED}"{,usr/}lib*/lib*.so* | awk '$2 == "" { print }' | sed -e "s:^[[:space:]]${ED}:/:")
+	f=$(scanelf -ByF '%n %p' "${ED%/}"/{,usr/}lib*/lib*.so* | awk '$2 == "" { print }' | sed -e "s:^[[:space:]]${ED%/}/:/:")
 	if [[ -n ${f} ]] ; then
 		echo "${f}" > "${T}"/scanelf-missing-NEEDED.log
 		if [[ "${QA_STRICT_DT_NEEDED-unset}" == unset ]] ; then
@@ -81,16 +81,16 @@ lib_check() {
 
 	# this should help to ensure that all (most?) shared libraries are executable
 	# and that all libtool scripts / static libraries are not executable
-	for i in "${ED}"opt/*/lib* \
-	         "${ED}"lib* \
-	         "${ED}"usr/lib* ; do
+	for i in "${ED%/}"/opt/*/lib* \
+	         "${ED%/}"/lib* \
+	         "${ED%/}"/usr/lib* ; do
 		[[ ! -d ${i} ]] && continue
 
 		for j in "${i}"/*.so.* "${i}"/*.so ; do
 			[[ ! -e ${j} ]] && continue
 			[[ -L ${j} ]] && continue
 			[[ -x ${j} ]] && continue
-			__vecho "making executable: ${j#${ED}}"
+			__vecho "making executable: ${j#${ED%/}}"
 			chmod +x "${j}"
 		done
 
@@ -98,7 +98,7 @@ lib_check() {
 			[[ ! -e ${j} ]] && continue
 			[[ -L ${j} ]] && continue
 			[[ ! -x ${j} ]] && continue
-			__vecho "removing executable bit: ${j#${ED}}"
+			__vecho "removing executable bit: ${j#${ED%/}}"
 			chmod -x "${j}"
 		done
 
@@ -109,7 +109,7 @@ lib_check() {
 			if [[ ${linkdest} == /* ]] ; then
 				__vecho -ne '\n'
 				eqawarn "QA Notice: Found an absolute symlink in a library directory:"
-				eqawarn "           ${j#${D}} -> ${linkdest}"
+				eqawarn "           ${j#${D%/}} -> ${linkdest}"
 				eqawarn "           It should be a relative symlink if in the same directory"
 				eqawarn "           or a linker script if it crosses the /usr boundary."
 			fi
@@ -122,7 +122,7 @@ lib_check() {
 	# https://bugs.gentoo.org/4411
 	local abort="no"
 	local a s
-	for a in "${ED}"usr/lib*/*.a ; do
+	for a in "${ED%/}"/usr/lib*/*.a ; do
 		s=${a%.a}.so
 		if [[ ! -e ${s} ]] ; then
 			s=${s%usr/*}${s##*/usr/}
@@ -136,7 +136,7 @@ lib_check() {
 	[[ ${abort} == "yes" ]] && die "add those ldscripts"
 
 	# Make sure people don't store libtool files or static libs in /lib
-	f=$(ls "${ED}"lib*/*.{a,la} 2>/dev/null)
+	f=$(ls "${ED%/}"/lib*/*.{a,la} 2>/dev/null)
 	if [[ -n ${f} ]] ; then
 		__vecho -ne '\n'
 		eqawarn "QA Notice: Excessive files found in the / partition"
@@ -147,7 +147,7 @@ lib_check() {
 
 	# Verify that the libtool files don't contain bogus $D entries.
 	local abort=no gentoo_bug=no always_overflow=no
-	for a in "${ED}"usr/lib*/*.la ; do
+	for a in "${ED%/}"/usr/lib*/*.la ; do
 		s=${a##*/}
 		if grep -qs "${ED}" "${a}" ; then
 			__vecho -ne '\n'

diff --git a/bin/misc-functions.sh b/bin/misc-functions.sh
index a02aa3bfd..7643af7b5 100755
--- a/bin/misc-functions.sh
+++ b/bin/misc-functions.sh
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 #
 # Miscellaneous shell functions that make use of the ebuild env but don't need
@@ -87,7 +87,7 @@ prepcompress() {
 	# Canonicalize path names and check for their existence.
 	real_d=$(canonicalize "${ED}")
 	for (( i = 0; i < ${#PORTAGE_DOCOMPRESS[@]}; i++ )); do
-		real_f=$(canonicalize "${ED}${PORTAGE_DOCOMPRESS[i]}")
+		real_f=$(canonicalize "${ED%/}/${PORTAGE_DOCOMPRESS[i]#/}")
 		f=${real_f#"${real_d}"}
 		if [[ ${real_f} != "${f}" ]] && [[ -d ${real_f} || -f ${real_f} ]]
 		then
@@ -98,7 +98,7 @@ prepcompress() {
 		fi
 	done
 	for (( i = 0; i < ${#PORTAGE_DOCOMPRESS_SKIP[@]}; i++ )); do
-		real_f=$(canonicalize "${ED}${PORTAGE_DOCOMPRESS_SKIP[i]}")
+		real_f=$(canonicalize "${ED%/}/${PORTAGE_DOCOMPRESS_SKIP[i]#/}")
 		f=${real_f#"${real_d}"}
 		if [[ ${real_f} != "${f}" ]] && [[ -d ${real_f} || -f ${real_f} ]]
 		then
@@ -147,7 +147,7 @@ prepcompress() {
 
 	# Split the include list into directories and files
 	for f in "${include[@]}"; do
-		if [[ -d ${ED}${f} ]]; then
+		if [[ -d ${ED%/}/${f#/} ]]; then
 			incl_d[${#incl_d[@]}]=${f}
 		else
 			incl_f[${#incl_f[@]}]=${f}
@@ -157,7 +157,7 @@ prepcompress() {
 	# Queue up for compression.
 	# ecompress{,dir} doesn't like to be called with empty argument lists.
 	[[ ${#incl_d[@]} -gt 0 ]] && ecompressdir --limit ${PORTAGE_DOCOMPRESS_SIZE_LIMIT:-0} --queue "${incl_d[@]}"
-	[[ ${#incl_f[@]} -gt 0 ]] && ecompress --queue "${incl_f[@]/#/${ED}}"
+	[[ ${#incl_f[@]} -gt 0 ]] && ecompress --queue "${incl_f[@]/#/${ED%/}}"
 	[[ ${#exclude[@]} -gt 0 ]] && ecompressdir --ignore "${exclude[@]}"
 	return 0
 }
@@ -253,7 +253,7 @@ install_qa_check() {
 	fi
 
 	# Portage regenerates this on the installed system.
-	rm -f "${ED}"/usr/share/info/dir{,.gz,.bz2} || die "rm failed!"
+	rm -f "${ED%/}"/usr/share/info/dir{,.gz,.bz2} || die "rm failed!"
 }
 
 preinst_qa_check() {
@@ -387,7 +387,7 @@ preinst_mask() {
 
 	# remove share dir if unnessesary
 	if has nodoc $FEATURES || has noman $FEATURES || has noinfo $FEATURES; then
-		rmdir "${ED}usr/share" &> /dev/null
+		rmdir "${ED%/}/usr/share" &> /dev/null
 	fi
 }
 
@@ -407,11 +407,11 @@ preinst_sfperms() {
 		find "${ED}" -type f -perm -4000 -print0 | \
 		while read -r -d $'\0' i ; do
 			if [ -n "$(find "$i" -perm -2000)" ] ; then
-				ebegin ">>> SetUID and SetGID: [chmod o-r] /${i#${ED}}"
+				ebegin ">>> SetUID and SetGID: [chmod o-r] ${i#${ED%/}}"
 				chmod o-r "$i"
 				eend $?
 			else
-				ebegin ">>> SetUID: [chmod go-r] /${i#${ED}}"
+				ebegin ">>> SetUID: [chmod go-r] ${i#${ED%/}}"
 				chmod go-r "$i"
 				eend $?
 			fi
@@ -423,7 +423,7 @@ preinst_sfperms() {
 				# by the SetUID check above.
 				true
 			else
-				ebegin ">>> SetGID: [chmod o-r] /${i#${ED}}"
+				ebegin ">>> SetGID: [chmod o-r] ${i#${ED%/}}"
 				chmod o-r "$i"
 				eend $?
 			fi
@@ -452,7 +452,7 @@ preinst_suid_scan() {
 		__vecho ">>> Performing suid scan in ${ED}"
 		for i in $(find "${ED}" -type f \( -perm -4000 -o -perm -2000 \) ); do
 			if [ -s "${sfconf}" ]; then
-				install_path=/${i#${ED}}
+				install_path=${i#${ED%/}}
 				if grep -q "^${install_path}\$" "${sfconf}" ; then
 					__vecho "- ${install_path} is an approved suid file"
 				else
@@ -462,7 +462,7 @@ preinst_suid_scan() {
 					chmod ugo-s "${i}"
 					grep "^#${install_path}$" "${sfconf}" > /dev/null || {
 						__vecho ">>> Appending commented out entry to ${sfconf} for ${PF}"
-						echo "## ${ls_ret%${ED}*}${install_path}" >> "${sfconf}"
+						echo "## ${ls_ret%${ED%/}*}${install_path}" >> "${sfconf}"
 						echo "#${install_path}" >> "${sfconf}"
 						# no delwrite() eh?
 						# delwrite ${sconf}

diff --git a/bin/phase-helpers.sh b/bin/phase-helpers.sh
index 3a2138636..5eeecfef7 100644
--- a/bin/phase-helpers.sh
+++ b/bin/phase-helpers.sh
@@ -29,8 +29,8 @@ into() {
 		if ! ___eapi_has_prefix_variables; then
 			local ED=${D}
 		fi
-		if [ ! -d "${ED}${_E_DESTTREE_}" ]; then
-			install -d "${ED}${_E_DESTTREE_}"
+		if [ ! -d "${ED%/}/${_E_DESTTREE_#/}" ]; then
+			install -d "${ED%/}/${_E_DESTTREE_#/}"
 			local ret=$?
 			if [[ $ret -ne 0 ]] ; then
 				__helpers_die "${FUNCNAME[0]} failed"
@@ -52,8 +52,8 @@ insinto() {
 		if ! ___eapi_has_prefix_variables; then
 			local ED=${D}
 		fi
-		if [ ! -d "${ED}${_E_INSDESTTREE_}" ]; then
-			install -d "${ED}${_E_INSDESTTREE_}"
+		if [ ! -d "${ED%/}/${_E_INSDESTTREE_#/}" ]; then
+			install -d "${ED%/}/${_E_INSDESTTREE_#/}"
 			local ret=$?
 			if [[ $ret -ne 0 ]] ; then
 				__helpers_die "${FUNCNAME[0]} failed"
@@ -75,8 +75,8 @@ exeinto() {
 		if ! ___eapi_has_prefix_variables; then
 			local ED=${D}
 		fi
-		if [ ! -d "${ED}${_E_EXEDESTTREE_}" ]; then
-			install -d "${ED}${_E_EXEDESTTREE_}"
+		if [ ! -d "${ED%/}/${_E_EXEDESTTREE_#/}" ]; then
+			install -d "${ED%/}/${_E_EXEDESTTREE_#/}"
 			local ret=$?
 			if [[ $ret -ne 0 ]] ; then
 				__helpers_die "${FUNCNAME[0]} failed"
@@ -94,8 +94,8 @@ docinto() {
 		if ! ___eapi_has_prefix_variables; then
 			local ED=${D}
 		fi
-		if [ ! -d "${ED}usr/share/doc/${PF}/${_E_DOCDESTTREE_}" ]; then
-			install -d "${ED}usr/share/doc/${PF}/${_E_DOCDESTTREE_}"
+		if [ ! -d "${ED%/}/usr/share/doc/${PF}/${_E_DOCDESTTREE_#/}" ]; then
+			install -d "${ED%/}/usr/share/doc/${PF}/${_E_DOCDESTTREE_#/}"
 			local ret=$?
 			if [[ $ret -ne 0 ]] ; then
 				__helpers_die "${FUNCNAME[0]} failed"
@@ -707,7 +707,7 @@ einstall() {
 	fi
 	unset LIBDIR_VAR
 	if [ -n "${CONF_LIBDIR}" ] && [ "${CONF_PREFIX:+set}" = set ]; then
-		EI_DESTLIBDIR="${D}/${CONF_PREFIX}/${CONF_LIBDIR}"
+		EI_DESTLIBDIR="${D%/}/${CONF_PREFIX}/${CONF_LIBDIR}"
 		EI_DESTLIBDIR="$(__strip_duplicate_slashes "${EI_DESTLIBDIR}")"
 		LOCAL_EXTRA_EINSTALL="libdir=${EI_DESTLIBDIR} ${LOCAL_EXTRA_EINSTALL}"
 		unset EI_DESTLIBDIR
@@ -715,22 +715,22 @@ einstall() {
 
 	if [[ -f Makefile || -f GNUmakefile || -f makefile ]] ; then
 		if [ "${PORTAGE_DEBUG}" == "1" ]; then
-			${MAKE:-make} -n prefix="${ED}usr" \
-				datadir="${ED}usr/share" \
-				infodir="${ED}usr/share/info" \
-				localstatedir="${ED}var/lib" \
-				mandir="${ED}usr/share/man" \
-				sysconfdir="${ED}etc" \
+			${MAKE:-make} -n prefix="${ED%/}/usr" \
+				datadir="${ED%/}/usr/share" \
+				infodir="${ED%/}/usr/share/info" \
+				localstatedir="${ED%/}/var/lib" \
+				mandir="${ED%/}/usr/share/man" \
+				sysconfdir="${ED%/}/etc" \
 				${LOCAL_EXTRA_EINSTALL} \
 				${MAKEOPTS} -j1 \
 				"$@" ${EXTRA_EMAKE} install
 		fi
-		if ! ${MAKE:-make} prefix="${ED}usr" \
-			datadir="${ED}usr/share" \
-			infodir="${ED}usr/share/info" \
-			localstatedir="${ED}var/lib" \
-			mandir="${ED}usr/share/man" \
-			sysconfdir="${ED}etc" \
+		if ! ${MAKE:-make} prefix="${ED%/}/usr" \
+			datadir="${ED%/}/usr/share" \
+			infodir="${ED%/}/usr/share/info" \
+			localstatedir="${ED%/}/var/lib" \
+			mandir="${ED%/}/usr/share/man" \
+			sysconfdir="${ED%/}/etc" \
 			${LOCAL_EXTRA_EINSTALL} \
 			${MAKEOPTS} -j1 \
 			"$@" ${EXTRA_EMAKE} install


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2018-03-12 20:12 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-03-12 20:12 [gentoo-commits] proj/portage:master commit in: bin/ebuild-helpers/, bin/install-qa-check.d/, bin/ 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