diff options
author | Krzesimir Nowak <knowak@microsoft.com> | 2023-02-15 11:14:30 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2023-02-22 16:17:55 +0000 |
commit | 991727070a928a03481303ed5b0a571534853445 (patch) | |
tree | ddd02da842bd5c1b3578231de590c744393eac20 /scripts | |
parent | dev-embedded/platformio: Version bump to 6.1.6 (diff) | |
download | gentoo-991727070a928a03481303ed5b0a571534853445.tar.gz gentoo-991727070a928a03481303ed5b0a571534853445.tar.bz2 gentoo-991727070a928a03481303ed5b0a571534853445.zip |
scripts/bootstrap.sh: Fix bootstrap in verbose mode
Verbose mode does not unset STRAP_RUN, thus the script tries to prune
sys-devel/gcc at the later stage. Currently portage exits with an exit
status 1 if a specific package was requested to be pruned and there
was nothing to do. This results in a bootstrap failure. So before we
try to prune, let's do a dry run to see if anything would be done.
For the portage code that results in exit status 1, see the following
link:
https://gitweb.gentoo.org/proj/portage.git/tree/lib/_emerge/actions.py?id=bde2a895cf520687dce7a8e92601041a37529ba0#n1700
Signed-off-by: Krzesimir Nowak <knowak@microsoft.com>
Closes: https://github.com/gentoo/gentoo/pull/29612
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/bootstrap.sh | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/scripts/bootstrap.sh b/scripts/bootstrap.sh index 4e6b87af15a4..1e998075691a 100755 --- a/scripts/bootstrap.sh +++ b/scripts/bootstrap.sh @@ -345,10 +345,16 @@ fi if [[ -n ${STRAP_RUN} ]] ; then if [[ -x ${GCC_CONFIG} ]] && ${GCC_CONFIG} --get-current-profile &>/dev/null then - # Make sure we get the old gcc unmerged ... - ${V_ECHO} emerge ${STRAP_EMERGE_OPTS} --prune sys-devel/gcc || cleanup 1 - # Make sure the profile and /lib/cpp and /usr/bin/cc are valid ... - ${GCC_CONFIG} "$(${GCC_CONFIG} --get-current-profile)" &>/dev/null + output=$(${V_ECHO} emerge ${STRAP_EMERGE_OPTS} --prune --pretend --quiet sys-devel/gcc 2>/dev/null) + if [[ ${DEBUG} = "1" ]] ; then + echo "${output}" + fi + if [[ "${output}" = *'All selected packages:'* ]] ; then + # Make sure we get the old gcc unmerged ... + ${V_ECHO} emerge ${STRAP_EMERGE_OPTS} --prune sys-devel/gcc || cleanup 1 + # Make sure the profile and /lib/cpp and /usr/bin/cc are valid ... + ${GCC_CONFIG} "$(${GCC_CONFIG} --get-current-profile)" &>/dev/null + fi fi fi |