Only support ROOT override for best/has_version.
authorZac Medico <zmedico@gentoo.org>
Mon, 7 Nov 2011 20:19:53 +0000 (12:19 -0800)
committerZac Medico <zmedico@gentoo.org>
Mon, 7 Nov 2011 20:20:18 +0000 (12:20 -0800)
In the context of ebuilds, ROOT=/ override is the only common case, so
it makes sense to only support ROOT overrides.

bin/phase-helpers.sh

index 5d2d5dd3aeb2995a87aa141cb437eb2feb2164ed..6609dc77a14e65c94afe7e15f49fa995c47602ff 100644 (file)
@@ -599,25 +599,19 @@ _eapi4_src_install() {
 # @FUNCTION: has_version
 # @USAGE: <DEPEND ATOM>
 # @DESCRIPTION:
-# Returns the best/most-current match. Callers may override the ROOT
-# variable in order match packages from an alternative ROOT. In
-# EAPI 3 and later, override EROOT instead (ROOT override is supported
-# in this case only if EPREFIX is empty).
+# Return true if given package is installed. Otherwise return false.
+# Callers may override the ROOT variable in order match packages from an
+# alternative ROOT.
 has_version() {
 
-       local eroot=${EROOT}
+       local eroot
        case "$EAPI" in
                0|1|2)
                        eroot=${ROOT}
                        ;;
                *)
-                       if [[ -z ${EPREFIX} && ${EROOT} != ${ROOT} ]] ; then
-                               # Handle ROOT environment override, which ebuilds
-                               # sometimes use for stage1/cross-compiling.
-                               # In order to support prefix, they'll have to
-                               # override EROOT instead.
-                               eroot=${ROOT}
-                       fi
+                       eroot=${ROOT%/}${EPREFIX#/}/
+                       ;;
        esac
        if [[ -n $PORTAGE_IPC_DAEMON ]] ; then
                "$PORTAGE_BIN_PATH"/ebuild-ipc has_version "${eroot}" "$1"
@@ -639,25 +633,19 @@ has_version() {
 # @FUNCTION: best_version
 # @USAGE: <DEPEND ATOM>
 # @DESCRIPTION:
-# Returns the best/most-current match. Callers may override the ROOT
-# variable in order match packages from an alternative ROOT. In
-# EAPI 3 and later, override EROOT instead (ROOT override is supported
-# in this case only if EPREFIX is empty).
+# Returns the best/most-current match.
+# Callers may override the ROOT variable in order match packages from an
+# alternative ROOT.
 best_version() {
 
-       local eroot=${EROOT}
+       local eroot
        case "$EAPI" in
                0|1|2)
                        eroot=${ROOT}
                        ;;
                *)
-                       if [[ -z ${EPREFIX} && ${EROOT} != ${ROOT} ]] ; then
-                               # Handle ROOT environment override, which ebuilds
-                               # sometimes use for stage1/cross-compiling.
-                               # In order to support prefix, they'll have to
-                               # override EROOT instead.
-                               eroot=${ROOT}
-                       fi
+                       eroot=${ROOT%/}${EPREFIX#/}/
+                       ;;
        esac
        if [[ -n $PORTAGE_IPC_DAEMON ]] ; then
                "$PORTAGE_BIN_PATH"/ebuild-ipc best_version "${eroot}" "$1"