PkgCore uses an additional md5-cache INHERIT key to indicate eclasses
explicitly inherited in an ebuild.  Update Portage to emit the same key
to restore cache compatibility.

Signed-off-by: Michał Górny <mgo...@gentoo.org>
---
 bin/ebuild.sh                                          | 8 +++++++-
 bin/phase-functions.sh                                 | 2 +-
 lib/portage/__init__.py                                | 2 +-
 lib/portage/package/ebuild/_config/special_env_vars.py | 2 +-
 4 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/bin/ebuild.sh b/bin/ebuild.sh
index 381bcb5c8..07ca58d22 100755
--- a/bin/ebuild.sh
+++ b/bin/ebuild.sh
@@ -402,6 +402,9 @@ inherit() {
                        unset $__export_funcs_var
 
                        has $1 $INHERITED || export INHERITED="$INHERITED $1"
+                       if [[ ${ECLASS_DEPTH} -eq 1 ]]; then
+                               export 
PORTAGE_EXPLICIT_INHERIT="${PORTAGE_EXPLICIT_INHERIT} $1"
+                       fi
                fi
 
                shift
@@ -648,6 +651,7 @@ if ! has "$EBUILD_PHASE" clean cleanrm ; then
                unset INHERITED IUSE REQUIRED_USE ECLASS E_IUSE E_REQUIRED_USE
                unset E_DEPEND E_RDEPEND E_PDEPEND E_BDEPEND E_IDEPEND 
E_PROPERTIES
                unset E_RESTRICT PROVIDES_EXCLUDE REQUIRES_EXCLUDE
+               unset PORTAGE_EXPLICIT_INHERIT
 
                if [[ $PORTAGE_DEBUG != 1 || ${-/x/} != $- ]] ; then
                        source "$EBUILD" || die "error sourcing ebuild"
@@ -757,7 +761,7 @@ if [[ $EBUILD_PHASE = depend ]] ; then
        metadata_keys=(
                DEPEND RDEPEND SLOT SRC_URI RESTRICT HOMEPAGE LICENSE
                DESCRIPTION KEYWORDS INHERITED IUSE REQUIRED_USE PDEPEND BDEPEND
-               EAPI PROPERTIES DEFINED_PHASES IDEPEND
+               EAPI PROPERTIES DEFINED_PHASES IDEPEND INHERIT
        )
 
        if ! ___eapi_has_BDEPEND; then
@@ -767,6 +771,8 @@ if [[ $EBUILD_PHASE = depend ]] ; then
                unset IDEPEND
        fi
 
+       INHERIT=${PORTAGE_EXPLICIT_INHERIT}
+
        # The extra $(echo) commands remove newlines.
        for f in "${metadata_keys[@]}" ; do
                echo "${f}=$(echo ${!f})" >&${PORTAGE_PIPE_FD} || exit $?
diff --git a/bin/phase-functions.sh b/bin/phase-functions.sh
index 0bb5d86e1..d3221993d 100644
--- a/bin/phase-functions.sh
+++ b/bin/phase-functions.sh
@@ -20,7 +20,7 @@ PORTAGE_READONLY_VARS="D EBUILD EBUILD_PHASE 
EBUILD_PHASE_FUNC \
        PORTAGE_BUILD_USER PORTAGE_BUNZIP2_COMMAND \
        PORTAGE_BZIP2_COMMAND PORTAGE_COLORMAP PORTAGE_CONFIGROOT \
        PORTAGE_DEBUG PORTAGE_DEPCACHEDIR PORTAGE_EBUILD_EXIT_FILE \
-       PORTAGE_ECLASS_LOCATIONS \
+       PORTAGE_ECLASS_LOCATIONS PORTAGE_EXPLICIT_INHERIT \
        PORTAGE_GID PORTAGE_GRPNAME PORTAGE_INST_GID PORTAGE_INST_UID \
        PORTAGE_INTERNAL_CALLER PORTAGE_IPC_DAEMON PORTAGE_IUSE 
PORTAGE_LOG_FILE \
        PORTAGE_MUTABLE_FILTERED_VARS PORTAGE_OVERRIDE_EPREFIX 
PORTAGE_PROPERTIES \
diff --git a/lib/portage/__init__.py b/lib/portage/__init__.py
index 232d77f0e..a41ca4323 100644
--- a/lib/portage/__init__.py
+++ b/lib/portage/__init__.py
@@ -519,7 +519,7 @@ auxdbkeys = (
        'RESTRICT',  'HOMEPAGE',  'LICENSE',   'DESCRIPTION',
        'KEYWORDS',  'INHERITED', 'IUSE', 'REQUIRED_USE',
        'PDEPEND',   'BDEPEND', 'EAPI',
-       'PROPERTIES', 'DEFINED_PHASES', 'IDEPEND',
+       'PROPERTIES', 'DEFINED_PHASES', 'IDEPEND', 'INHERIT',
 )
 
 def portageexit():
diff --git a/lib/portage/package/ebuild/_config/special_env_vars.py 
b/lib/portage/package/ebuild/_config/special_env_vars.py
index 456af1838..8e314a6d6 100644
--- a/lib/portage/package/ebuild/_config/special_env_vars.py
+++ b/lib/portage/package/ebuild/_config/special_env_vars.py
@@ -22,7 +22,7 @@ env_blacklist = frozenset((
        "KEYWORDS", "LICENSE", "MERGE_TYPE",
        "PDEPEND", "PF", "PKGUSE", "PORTAGE_BACKGROUND",
        "PORTAGE_BACKGROUND_UNMERGE", "PORTAGE_BUILDDIR_LOCKED",
-       "PORTAGE_BUILT_USE", "PORTAGE_CONFIGROOT",
+       "PORTAGE_BUILT_USE", "PORTAGE_CONFIGROOT", "PORTAGE_EXPLICIT_INHERIT",
        "PORTAGE_INTERNAL_CALLER", "PORTAGE_IUSE",
        "PORTAGE_NONFATAL", "PORTAGE_PIPE_FD", "PORTAGE_REPO_NAME",
        "PORTAGE_USE", "PROPERTIES", "RDEPEND", "REPOSITORY",
-- 
2.33.0


Reply via email to