commit:     632fea4f4aa4bdca63bf6d8db266b09a6954e313
Author:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
AuthorDate: Sat Dec  2 22:53:49 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Dec  4 06:45:45 2023 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=632fea4f

Set SYSROOT for has/best_version so that they work when IPC is disabled

This issue broke cross-compiling.

Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org>
Closes: https://github.com/gentoo/portage/pull/1198
Signed-off-by: Sam James <sam <AT> gentoo.org>

 NEWS                 |  7 +++++++
 bin/phase-helpers.sh | 10 +++++++---
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/NEWS b/NEWS
index ce9ed282b5..5561c7fe40 100644
--- a/NEWS
+++ b/NEWS
@@ -6,6 +6,13 @@ Release notes take the form of the following optional 
categories:
 * Bug fixes
 * Cleanups
 
+portage-3.0.57 (UNRELEASED)
+--------------
+
+Bug fixes:
+* Set SYSROOT appropriately for best_version and has_version so that they work
+  when cross-compiling and IPC is disabled.
+
 portage-3.0.56 (2023-12-01)
 --------------
 

diff --git a/bin/phase-helpers.sh b/bin/phase-helpers.sh
index ec634e536d..45a1639c42 100644
--- a/bin/phase-helpers.sh
+++ b/bin/phase-helpers.sh
@@ -907,7 +907,11 @@ __eapi8_src_prepare() {
 
 ___best_version_and_has_version_common() {
        local atom root root_arg
-       local -a cmd=()
+
+       # If ROOT is set to / below then SYSROOT cannot point elsewhere. Even if
+       # ROOT is untouched, setting SYSROOT=/ for this command will always 
work.
+       local -a cmd=(env SYSROOT=/)
+
        case $1 in
                --host-root|-r|-d|-b)
                        root_arg=$1
@@ -932,7 +936,7 @@ ___best_version_and_has_version_common() {
                                # Since portageq requires the root argument be 
consistent
                                # with EPREFIX, ensure consistency here (bug 
#655414).
                                root=/${PORTAGE_OVERRIDE_EPREFIX#/}
-                               cmd+=(env EPREFIX="${PORTAGE_OVERRIDE_EPREFIX}")
+                               cmd+=(EPREFIX="${PORTAGE_OVERRIDE_EPREFIX}")
                        else
                                root=/
                        fi ;;
@@ -948,7 +952,7 @@ ___best_version_and_has_version_common() {
                                                # Use 
/${PORTAGE_OVERRIDE_EPREFIX#/} to support older
                                                # EAPIs, as it is equivalent to 
BROOT.
                                                
root=/${PORTAGE_OVERRIDE_EPREFIX#/}
-                                               cmd+=(env 
EPREFIX="${PORTAGE_OVERRIDE_EPREFIX}")
+                                               
cmd+=(EPREFIX="${PORTAGE_OVERRIDE_EPREFIX}")
                                                ;;
                                esac
                        else

Reply via email to