commit: 56421775978dbee167dd241c43d3a56b8a3ea48e Author: Michał Górny <mgorny <AT> gentoo <DOT> org> AuthorDate: Mon Nov 16 10:00:28 2020 +0000 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> CommitDate: Wed May 12 11:21:44 2021 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=56421775
Accumulated PROPERTIES and RESTRICT for EAPI 8 Reviewed-by: Zac Medico <zmedico <AT> gentoo.org> Closes: https://github.com/gentoo/portage/pull/638 Signed-off-by: Michał Górny <mgorny <AT> gentoo.org> bin/eapi.sh | 8 ++++++++ bin/ebuild.sh | 48 ++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 50 insertions(+), 6 deletions(-) diff --git a/bin/eapi.sh b/bin/eapi.sh index a93efa8cd..e2b6f62a0 100644 --- a/bin/eapi.sh +++ b/bin/eapi.sh @@ -50,6 +50,14 @@ ___eapi_has_PORTDIR_ECLASSDIR() { [[ ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-progress|6)$ ]] } +___eapi_has_accumulated_PROPERTIES() { + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-progress|6|7)$ ]] +} + +___eapi_has_accumulated_RESTRICT() { + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-progress|6|7)$ ]] +} + # HELPERS PRESENCE ___eapi_has_dohard() { diff --git a/bin/ebuild.sh b/bin/ebuild.sh index cfcf6eba3..ed0218787 100755 --- a/bin/ebuild.sh +++ b/bin/ebuild.sh @@ -255,6 +255,8 @@ inherit() { local B_RDEPEND local B_PDEPEND local B_BDEPEND + local B_PROPERTIES + local B_RESTRICT while [ "$1" ]; do location="" potential_location="" @@ -299,7 +301,7 @@ inherit() { # Retain the old data and restore it later. unset B_IUSE B_REQUIRED_USE B_DEPEND B_RDEPEND B_PDEPEND - unset B_BDEPEND + unset B_BDEPEND B_PROPERTIES B_RESTRICT [ "${IUSE+set}" = set ] && B_IUSE="${IUSE}" [ "${REQUIRED_USE+set}" = set ] && B_REQUIRED_USE="${REQUIRED_USE}" [ "${DEPEND+set}" = set ] && B_DEPEND="${DEPEND}" @@ -307,6 +309,16 @@ inherit() { [ "${PDEPEND+set}" = set ] && B_PDEPEND="${PDEPEND}" [ "${BDEPEND+set}" = set ] && B_BDEPEND="${BDEPEND}" unset IUSE REQUIRED_USE DEPEND RDEPEND PDEPEND BDEPEND + + if ___eapi_has_accumulated_PROPERTIES; then + [[ ${PROPERTIES+set} == set ]] && B_PROPERTIES=${PROPERTIES} + unset PROPERTIES + fi + if ___eapi_has_accumulated_RESTRICT; then + [[ ${RESTRICT+set} == set ]] && B_RESTRICT=${RESTRICT} + unset RESTRICT + fi + #turn on glob expansion set +f fi @@ -344,6 +356,23 @@ inherit() { [ "${B_BDEPEND+set}" = set ] && BDEPEND="${B_BDEPEND}" [ "${B_BDEPEND+set}" = set ] || unset BDEPEND + if ___eapi_has_accumulated_PROPERTIES; then + [[ ${PROPERTIES+set} == set ]] && + E_PROPERTIES+=${E_PROPERTIES:+ }${PROPERTIES} + [[ ${B_PROPERTIES+set} == set ]] && + PROPERTIES=${B_PROPERTIES} + [[ ${B_PROPERTIES+set} == set ]] || + unset PROPERTIES + fi + if ___eapi_has_accumulated_RESTRICT; then + [[ ${RESTRICT+set} == set ]] && + E_RESTRICT+=${E_RESTRICT:+ }${RESTRICT} + [[ ${B_RESTRICT+set} == set ]] && + RESTRICT=${B_RESTRICT} + [[ ${B_RESTRICT+set} == set ]] || + unset RESTRICT + fi + #turn on glob expansion set +f @@ -600,10 +629,10 @@ if ! has "$EBUILD_PHASE" clean cleanrm ; then # In order to ensure correct interaction between ebuilds and # eclasses, they need to be unset before this process of # interaction begins. - unset EAPI DEPEND RDEPEND PDEPEND BDEPEND + unset EAPI DEPEND RDEPEND PDEPEND BDEPEND PROPERTIES RESTRICT unset INHERITED IUSE REQUIRED_USE ECLASS E_IUSE E_REQUIRED_USE - unset E_DEPEND E_RDEPEND E_PDEPEND E_BDEPEND - unset PROVIDES_EXCLUDE REQUIRES_EXCLUDE + unset E_DEPEND E_RDEPEND E_PDEPEND E_BDEPEND E_PROPERTIES + unset E_RESTRICT PROVIDES_EXCLUDE REQUIRES_EXCLUDE if [[ $PORTAGE_DEBUG != 1 || ${-/x/} != $- ]] ; then source "$EBUILD" || die "error sourcing ebuild" @@ -640,9 +669,16 @@ if ! has "$EBUILD_PHASE" clean cleanrm ; then PDEPEND+="${PDEPEND:+ }${E_PDEPEND}" BDEPEND+="${BDEPEND:+ }${E_BDEPEND}" REQUIRED_USE+="${REQUIRED_USE:+ }${E_REQUIRED_USE}" - + + if ___eapi_has_accumulated_PROPERTIES; then + PROPERTIES+=${PROPERTIES:+ }${E_PROPERTIES} + fi + if ___eapi_has_accumulated_RESTRICT; then + RESTRICT+=${RESTRICT:+ }${E_RESTRICT} + fi + unset ECLASS E_IUSE E_REQUIRED_USE E_DEPEND E_RDEPEND E_PDEPEND - unset E_BDEPEND __INHERITED_QA_CACHE + unset E_BDEPEND E_PROPERTIES E_RESTRICT __INHERITED_QA_CACHE # alphabetically ordered by $EBUILD_PHASE value case ${EAPI} in
