commit: b69fe7bafe8c39c105de5545dc3903af76f233f4 Author: Michael Haubenwallner <haubi <AT> gentoo <DOT> org> AuthorDate: Fri Jun 22 13:34:27 2018 +0000 Commit: Michael Haubenwallner <haubi <AT> gentoo <DOT> org> CommitDate: Fri Jun 22 13:45:09 2018 +0000 URL: https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=b69fe7ba
sys-apps/portage: add the stacked-prefix patch (#658572) Package-Manager: Portage-2.3.24, Repoman-2.3.6 .../files/portage-2.3.40-stacked-prefix.patch | 59 ++++++++++++++++++++++ sys-apps/portage/portage-2.3.40.2.ebuild | 3 +- 2 files changed, 61 insertions(+), 1 deletion(-) diff --git a/sys-apps/portage/files/portage-2.3.40-stacked-prefix.patch b/sys-apps/portage/files/portage-2.3.40-stacked-prefix.patch new file mode 100644 index 0000000000..d967d1faf7 --- /dev/null +++ b/sys-apps/portage/files/portage-2.3.40-stacked-prefix.patch @@ -0,0 +1,59 @@ +From 8a121d477a9a13569be3fb50eaeaa1162ed884bd Mon Sep 17 00:00:00 2001 +From: Michael Haubenwallner <[email protected]> +Date: Tue, 19 Jun 2018 16:39:12 +0200 +Subject: [PATCH 1/2] introduce the 'stacked-prefix' FEATURE + +When we merge into another EPREFIX, but not into some ROOT, +and CHOST is equal to CBUILD, build tools found in EPREFIX +perfectly work for the current build environment. +In a "stacked prefix" we explicitly utilize this situation. + +This is useful during prefix bootstrap (#655414, #655326), but also to +build packages for targets unable to support the full portage toolchain +(native Windows, MinGW), but otherwise do not require a full cross +compilation setup. +--- + bin/phase-helpers.sh | 14 ++++++++++++++ + pym/portage/const.py | 1 + + 2 files changed, 15 insertions(+) + +diff --git a/bin/phase-helpers.sh b/bin/phase-helpers.sh +index 75d92b407..c5a818db7 100644 +--- a/bin/phase-helpers.sh ++++ b/bin/phase-helpers.sh +@@ -927,6 +927,20 @@ ___best_version_and_has_version_common() { + fi ;; + esac + ++ if ___eapi_has_prefix_variables && ++ has "${root_arg}" '--host-root' '-b' && ++ has stacked-prefix ${FEATURES} && ++ [[ -z ${ROOT%/} ]] && ++ [[ ${CBUILD} == ${CHOST} ]] && ++ [[ ${EPREFIX} != ${BROOT-${PORTAGE_OVERRIDE_EPREFIX}} ]] && ++ :; then ++ # When we merge into another EPREFIX, but not into some ROOT, ++ # and CHOST is equal to CBUILD, build tools found in EPREFIX ++ # perfectly work for the current build environment. ++ # In a "stacked prefix" we explicitly utilize this situation. ++ "${FUNCNAME[1]}" "${atom}" && return 0 ++ fi ++ + if [[ -n $PORTAGE_IPC_DAEMON ]] ; then + cmd+=("${PORTAGE_BIN_PATH}"/ebuild-ipc "${FUNCNAME[1]}" "${root}" "${atom}") + else +diff --git a/pym/portage/const.py b/pym/portage/const.py +index d9c57f300..be7bf1036 100644 +--- a/pym/portage/const.py ++++ b/pym/portage/const.py +@@ -203,6 +203,7 @@ SUPPORTED_FEATURES = frozenset([ + "splitdebug", + "split-elog", + "split-log", ++ "stacked-prefix", + "strict", + "strict-keepdir", + "stricter", +-- +2.16.1 + diff --git a/sys-apps/portage/portage-2.3.40.2.ebuild b/sys-apps/portage/portage-2.3.40.2.ebuild index 8e6b1c32a5..63935aaa09 100644 --- a/sys-apps/portage/portage-2.3.40.2.ebuild +++ b/sys-apps/portage/portage-2.3.40.2.ebuild @@ -92,7 +92,8 @@ python_prepare_all() { distutils-r1_python_prepare_all epatch "${FILESDIR}"/${PN}-2.3.40-ebuildshell.patch # 155161 - use prefix-chaining && + epatch "${FILESDIR}"/${PN}-2.3.40-stacked-prefix.patch # 658572 + use prefix-chaining && # maybe useful even with stacked-prefix epatch "${FILESDIR}"/${PN}-2.3.40-prefix-chaining.patch if use native-extensions; then
