Gentoo Archives: gentoo-portage-dev

From: "Ulrich Müller" <ulm@g.o>
To: gentoo-portage-dev@l.g.o
Cc: "Ulrich Müller" <ulm@g.o>
Subject: [gentoo-portage-dev] [PATCH 1/2] Revert "Revert "Generate a QA Notice when EXPORT_FUNCTIONS is called before inherit""
Date: Sun, 29 Aug 2021 20:06:54
Message-Id: 20210829200639.2373-1-ulm@gentoo.org
1 Reinstate the QA notice, because Portage behavior deviates from PMS,
2 and breakage of eclasses with Pkgcore has been observed recently.
3
4 This reverts commit f44d32550861cb25c209ef61dcd7ae1aa230da1f.
5
6 Bug: https://bugs.gentoo.org/399039
7 Signed-off-by: Ulrich Müller <ulm@g.o>
8 ---
9 bin/ebuild.sh | 8 ++++++++
10 1 file changed, 8 insertions(+)
11
12 diff --git a/bin/ebuild.sh b/bin/ebuild.sh
13 index 5916bedfc..1bca2c965 100755
14 --- a/bin/ebuild.sh
15 +++ b/bin/ebuild.sh
16 @@ -243,6 +243,14 @@ inherit() {
17 ECLASS_DEPTH=$(($ECLASS_DEPTH + 1))
18 if [[ ${ECLASS_DEPTH} -gt 1 ]]; then
19 debug-print "*** Multiple Inheritence (Level: ${ECLASS_DEPTH})"
20 +
21 + # Since ECLASS_DEPTH > 1, the following variables are locals from the
22 + # previous inherit call in the call stack.
23 + if [[ -n ${ECLASS} && -n ${!__export_funcs_var} ]] ; then
24 + eqawarn "QA Notice: EXPORT_FUNCTIONS is called before inherit in ${ECLASS}.eclass."
25 + eqawarn "For compatibility with <=portage-2.1.6.7, only call EXPORT_FUNCTIONS"
26 + eqawarn "after inherit(s)."
27 + fi
28 fi
29
30 local -x ECLASS
31 --
32 2.33.0

Replies