Avoid assigning these variables in EAPIs where they are already defined.
Also make them local variables to avoid polluting the global
environment.

Closes: https://bugs.gentoo.org/685382
---
 eclass/savedconfig.eclass | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/eclass/savedconfig.eclass b/eclass/savedconfig.eclass
index 1e9ac6c80b4d..9bd308685b2d 100644
--- a/eclass/savedconfig.eclass
+++ b/eclass/savedconfig.eclass
@@ -46,19 +46,20 @@ save_config() {
        fi
        [[ $# -eq 0 ]] && die "Usage: save_config <files>"
 
-       # Be lazy in our EAPI compat
-       : ${ED:=${D}}
+       case ${EAPI:-0} in
+               0|1|2) local ED=${D}
+       esac
 
        local dest="/etc/portage/savedconfig/${CATEGORY}"
        if [[ $# -eq 1 && -f $1 ]] ; then
                # Just one file, so have the ${PF} be that config file
                dodir "${dest}"
-               cp "$@" "${ED}/${dest}/${PF}" || die "failed to save $*"
+               cp "$@" "${ED%/}/${dest}/${PF}" || die "failed to save $*"
        else
                # A dir, or multiple files, so have the ${PF} be a dir
                # with all the saved stuff below it
                dodir "${dest}/${PF}"
-               treecopy "$@" "${ED}/${dest}/${PF}" || die "failed to save $*"
+               treecopy "$@" "${ED%/}/${dest}/${PF}" || die "failed to save $*"
        fi
 
        elog "Your configuration for ${CATEGORY}/${PF} has been saved in "
@@ -99,7 +100,7 @@ restore_config() {
        use savedconfig || return
 
        local found check configfile
-       local base=${PORTAGE_CONFIGROOT}/etc/portage/savedconfig
+       local base=${PORTAGE_CONFIGROOT%/}/etc/portage/savedconfig
        for check in {${CATEGORY}/${PF},${CATEGORY}/${P},${CATEGORY}/${PN}}; do
                configfile=${base}/${CTARGET}/${check}
                [[ -r ${configfile} ]] || configfile=${base}/${CHOST}/${check}
@@ -143,10 +144,11 @@ savedconfig_pkg_postinst() {
        # are worse :/.
 
        if use savedconfig ; then
-               # Be lazy in our EAPI compat
-               : ${EROOT:=${ROOT}}
+               case ${EAPI:-0} in
+                       0|1|2) local EROOT=${ROOT}
+               esac
 
-               find "${EROOT}/etc/portage/savedconfig/${CATEGORY}/${PF}" \
+               find "${EROOT%/}/etc/portage/savedconfig/${CATEGORY}/${PF}" \
                        -exec touch {} + 2>/dev/null
        fi
 }
-- 
2.21.0


Reply via email to