1 |
PkgCore uses an additional md5-cache INHERIT key to indicate eclasses |
2 |
explicitly inherited in an ebuild. Update Portage to emit the same key |
3 |
to restore cache compatibility. |
4 |
|
5 |
Signed-off-by: Michał Górny <mgorny@g.o> |
6 |
--- |
7 |
bin/ebuild.sh | 8 +++++++- |
8 |
bin/phase-functions.sh | 2 +- |
9 |
lib/portage/__init__.py | 2 +- |
10 |
lib/portage/package/ebuild/_config/special_env_vars.py | 2 +- |
11 |
4 files changed, 10 insertions(+), 4 deletions(-) |
12 |
|
13 |
diff --git a/bin/ebuild.sh b/bin/ebuild.sh |
14 |
index 381bcb5c8..07ca58d22 100755 |
15 |
--- a/bin/ebuild.sh |
16 |
+++ b/bin/ebuild.sh |
17 |
@@ -402,6 +402,9 @@ inherit() { |
18 |
unset $__export_funcs_var |
19 |
|
20 |
has $1 $INHERITED || export INHERITED="$INHERITED $1" |
21 |
+ if [[ ${ECLASS_DEPTH} -eq 1 ]]; then |
22 |
+ export PORTAGE_EXPLICIT_INHERIT="${PORTAGE_EXPLICIT_INHERIT} $1" |
23 |
+ fi |
24 |
fi |
25 |
|
26 |
shift |
27 |
@@ -648,6 +651,7 @@ if ! has "$EBUILD_PHASE" clean cleanrm ; then |
28 |
unset INHERITED IUSE REQUIRED_USE ECLASS E_IUSE E_REQUIRED_USE |
29 |
unset E_DEPEND E_RDEPEND E_PDEPEND E_BDEPEND E_IDEPEND E_PROPERTIES |
30 |
unset E_RESTRICT PROVIDES_EXCLUDE REQUIRES_EXCLUDE |
31 |
+ unset PORTAGE_EXPLICIT_INHERIT |
32 |
|
33 |
if [[ $PORTAGE_DEBUG != 1 || ${-/x/} != $- ]] ; then |
34 |
source "$EBUILD" || die "error sourcing ebuild" |
35 |
@@ -757,7 +761,7 @@ if [[ $EBUILD_PHASE = depend ]] ; then |
36 |
metadata_keys=( |
37 |
DEPEND RDEPEND SLOT SRC_URI RESTRICT HOMEPAGE LICENSE |
38 |
DESCRIPTION KEYWORDS INHERITED IUSE REQUIRED_USE PDEPEND BDEPEND |
39 |
- EAPI PROPERTIES DEFINED_PHASES IDEPEND |
40 |
+ EAPI PROPERTIES DEFINED_PHASES IDEPEND INHERIT |
41 |
) |
42 |
|
43 |
if ! ___eapi_has_BDEPEND; then |
44 |
@@ -767,6 +771,8 @@ if [[ $EBUILD_PHASE = depend ]] ; then |
45 |
unset IDEPEND |
46 |
fi |
47 |
|
48 |
+ INHERIT=${PORTAGE_EXPLICIT_INHERIT} |
49 |
+ |
50 |
# The extra $(echo) commands remove newlines. |
51 |
for f in "${metadata_keys[@]}" ; do |
52 |
echo "${f}=$(echo ${!f})" >&${PORTAGE_PIPE_FD} || exit $? |
53 |
diff --git a/bin/phase-functions.sh b/bin/phase-functions.sh |
54 |
index 0bb5d86e1..d3221993d 100644 |
55 |
--- a/bin/phase-functions.sh |
56 |
+++ b/bin/phase-functions.sh |
57 |
@@ -20,7 +20,7 @@ PORTAGE_READONLY_VARS="D EBUILD EBUILD_PHASE EBUILD_PHASE_FUNC \ |
58 |
PORTAGE_BUILD_USER PORTAGE_BUNZIP2_COMMAND \ |
59 |
PORTAGE_BZIP2_COMMAND PORTAGE_COLORMAP PORTAGE_CONFIGROOT \ |
60 |
PORTAGE_DEBUG PORTAGE_DEPCACHEDIR PORTAGE_EBUILD_EXIT_FILE \ |
61 |
- PORTAGE_ECLASS_LOCATIONS \ |
62 |
+ PORTAGE_ECLASS_LOCATIONS PORTAGE_EXPLICIT_INHERIT \ |
63 |
PORTAGE_GID PORTAGE_GRPNAME PORTAGE_INST_GID PORTAGE_INST_UID \ |
64 |
PORTAGE_INTERNAL_CALLER PORTAGE_IPC_DAEMON PORTAGE_IUSE PORTAGE_LOG_FILE \ |
65 |
PORTAGE_MUTABLE_FILTERED_VARS PORTAGE_OVERRIDE_EPREFIX PORTAGE_PROPERTIES \ |
66 |
diff --git a/lib/portage/__init__.py b/lib/portage/__init__.py |
67 |
index 232d77f0e..a41ca4323 100644 |
68 |
--- a/lib/portage/__init__.py |
69 |
+++ b/lib/portage/__init__.py |
70 |
@@ -519,7 +519,7 @@ auxdbkeys = ( |
71 |
'RESTRICT', 'HOMEPAGE', 'LICENSE', 'DESCRIPTION', |
72 |
'KEYWORDS', 'INHERITED', 'IUSE', 'REQUIRED_USE', |
73 |
'PDEPEND', 'BDEPEND', 'EAPI', |
74 |
- 'PROPERTIES', 'DEFINED_PHASES', 'IDEPEND', |
75 |
+ 'PROPERTIES', 'DEFINED_PHASES', 'IDEPEND', 'INHERIT', |
76 |
) |
77 |
|
78 |
def portageexit(): |
79 |
diff --git a/lib/portage/package/ebuild/_config/special_env_vars.py b/lib/portage/package/ebuild/_config/special_env_vars.py |
80 |
index 456af1838..8e314a6d6 100644 |
81 |
--- a/lib/portage/package/ebuild/_config/special_env_vars.py |
82 |
+++ b/lib/portage/package/ebuild/_config/special_env_vars.py |
83 |
@@ -22,7 +22,7 @@ env_blacklist = frozenset(( |
84 |
"KEYWORDS", "LICENSE", "MERGE_TYPE", |
85 |
"PDEPEND", "PF", "PKGUSE", "PORTAGE_BACKGROUND", |
86 |
"PORTAGE_BACKGROUND_UNMERGE", "PORTAGE_BUILDDIR_LOCKED", |
87 |
- "PORTAGE_BUILT_USE", "PORTAGE_CONFIGROOT", |
88 |
+ "PORTAGE_BUILT_USE", "PORTAGE_CONFIGROOT", "PORTAGE_EXPLICIT_INHERIT", |
89 |
"PORTAGE_INTERNAL_CALLER", "PORTAGE_IUSE", |
90 |
"PORTAGE_NONFATAL", "PORTAGE_PIPE_FD", "PORTAGE_REPO_NAME", |
91 |
"PORTAGE_USE", "PROPERTIES", "RDEPEND", "REPOSITORY", |
92 |
-- |
93 |
2.33.0 |