The Python distutils deprecation is for real, and nowadays setuptools
installs hacks that override distutils with their own bundled version.
For this reason, the check no longer works reliably and even if it were,
we will eventually be requiring setuptools on all Python packages.
Avoid asking people to set DISTUTILS_USE_SETUPTOOLS=no; allow either
"no" or "bdepend" for the time being.

Signed-off-by: Michał Górny <[email protected]>
---
 metadata/install-qa-check.d/60distutils-use-setuptools | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/metadata/install-qa-check.d/60distutils-use-setuptools 
b/metadata/install-qa-check.d/60distutils-use-setuptools
index a7905c3f0b2f..6b3d063c73cf 100644
--- a/metadata/install-qa-check.d/60distutils-use-setuptools
+++ b/metadata/install-qa-check.d/60distutils-use-setuptools
@@ -1,4 +1,4 @@
-# Copyright 2020-2021 Gentoo Authors
+# Copyright 2020-2022 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # QA check: verify correctness of DISTUTILS_USE_SETUPTOOLS
@@ -63,6 +63,10 @@ distutils_use_setuptools_check() {
                eerror 
"https://dev.gentoo.org/~mgorny/python-guide/distutils.html#conditional-distutils-setuptools-use-in-packages";
                eerror "Please report a bug about this and CC python@"
        else
+               # now that distutils is deprecated and setuptools hacks its own
+               # version in, the check no longer works reliably.  just assume
+               # either "bdepend" or "no" is fine for the time being
+               [[ ${expected} == no ]] && expected+=( bdepend )
                # if we did not find anything, also assume 'no' is desired,
                # we do not want the setuptools dep
                [[ ${#expected[@]} -eq 0 ]] && expected=( no )
@@ -71,8 +75,6 @@ distutils_use_setuptools_check() {
                # NB: note that expected is overwritten above, so this implies 
!rdepend
                # if the package is using entry points, modern versions of 
setuptools
                # use built-in importlib.metadata module, so no rdep needed 
anymore
-               # NB2: this is incorrect for pypy3.7 but we ignore this for the 
time
-               # being
                has entry-point "${expected[@]}" && expected=( bdepend )
 
                if ! has ${DISTUTILS_USE_SETUPTOOLS} "${expected[@]}"; then
-- 
2.34.1


Reply via email to