commit: 5d5525ff57e9f0e28a17ea63aac19739cb5e77de Author: Michael Haubenwallner <haubi <AT> gentoo <DOT> org> AuthorDate: Tue Jan 28 15:43:29 2020 +0000 Commit: Michael Haubenwallner <haubi <AT> gentoo <DOT> org> CommitDate: Tue Jan 28 15:51:10 2020 +0000 URL: https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=5d5525ff
bootstrap-prefix.sh: fix circular deps in stage3 In prefix guest, when about to "with_stack_emerge_pkgs sys-apps/grep", portage fails with circular dependencies potentially breakable with USE=-berkdb, although we do set the USE=-berkdb environment variable. The problem here is that USE=-berkdb does apply to the stacked prefix only, not the base prefix, so we need to persist the base prefix' USE flags when we are about to do "with_stack_emerge_pkgs", even if this is not a problem with RAP right now, maybe because of a different tree. Signed-off-by: Michael Haubenwallner <haubi <AT> gentoo.org> scripts/bootstrap-prefix.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 2c26201141..7bb3e9df35 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -1556,6 +1556,17 @@ do_emerge_pkgs() { clang internal-glib ) + if [[ " ${USE} " == *" prefix-stack "* ]] && + [[ ${PORTAGE_OVERRIDE_EPREFIX} == */tmp ]] && + ! grep -q '^USE=".*" # by bootstrap-prefix.sh$' "${PORTAGE_OVERRIDE_EPREFIX}/etc/portage/make.conf" + then + # With prefix-stack, the USE env var does apply to the stacked + # prefix only, not the base prefix (any more? since some portage + # version?), so we have to persist the base USE flags into the + # base prefix - without the additional incoming USE flags. + echo "USE=\"\${USE} ${myuse[*]}\" # by bootstrap-prefix.sh" \ + >> "${PORTAGE_OVERRIDE_EPREFIX}/etc/portage/make.conf" + fi myuse=" ${myuse[*]} " local use for use in ${USE} ; do