commit:     b736fab642e5f3ce519c3b4618595126160e436b
Author:     Matt Jolly <kangie <AT> gentoo <DOT> org>
AuthorDate: Tue May 28 03:36:52 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue May 28 12:43:07 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=b736fab6

bootstrap-prefix: use full path for `do_emerge_pkgs`

In the stage3 bootstrap we always prefer to use tools that have been built for
stage3; to accomplish this we ensure that it is the first thing evaluated in 
PATH.
Unfortunately, Portage, Python, and Python-exec are often pulled into the 
depgraph
at some point before we're fully boostrapped. To ensure that we don't try and 
execute
${EPREFIX}/usr/bin/emerge before we're ready, always provide the full path to 
the
bootstrap Python interpreter and emerge script.

Signed-off-by: Matt Jolly <kangie <AT> gentoo.org>
Closes: https://github.com/gentoo/prefix/pull/37
Signed-off-by: Sam James <sam <AT> gentoo.org>

 scripts/bootstrap-prefix.sh | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh
index 741f6e6cde..92c3ad1869 100755
--- a/scripts/bootstrap-prefix.sh
+++ b/scripts/bootstrap-prefix.sh
@@ -1785,10 +1785,16 @@ do_emerge_pkgs() {
                                && export CFLAGS="${OVERRIDE_CFLAGS}"
                        [[ -n ${OVERRIDE_CXXFLAGS} ]] \
                                && export CXXFLAGS="${OVERRIDE_CXXFLAGS}"
+                       # In the stage3 bootstrap we always prefer to use tools 
that have been built for
+                       # stage3; to accomplish this we ensure that it is the 
first thing evaluated in PATH.
+                       # Unfortunately, Portage, Python, and Python-exec are 
often pulled into the depgraph
+                       # at some point before we're fully boostrapped. To 
ensure that we don't try and execute
+                       # ${EPREFIX}/usr/bin/emerge before we're ready, always 
provide the full path to the
+                       # bootstrap Python interpreter and emerge script.
                        PORTAGE_SYNC_STALE=0 \
                        FEATURES="-news ${FEATURES}" \
                        USE="${myuse[*]}" \
-                       emerge "${eopts[@]}" "${pkg}"
+                       "${EPREFIX}"/tmp/bin/python 
"${EPREFIX}"/tmp/usr/bin/emerge "${eopts[@]}" "${pkg}"
                ) || return 1
        done
 }
@@ -3021,7 +3027,7 @@ EOF
                        exit 1
                fi
        fi
-       
+
        if ! [[ -e ${EPREFIX}/.stage1-finished ]] && ! bootstrap_stage1_log ; 
then
                # stage 1 fail
                cat << EOF

Reply via email to