* [gentoo-dev] [PATCH] install-qa-check.d: do not request DISTUTILS_USE_SETUPTOOLS=no
@ 2022-01-09 8:15 Michał Górny
2022-01-09 8:22 ` Michał Górny
0 siblings, 1 reply; 2+ messages in thread
From: Michał Górny @ 2022-01-09 8:15 UTC (permalink / raw
To: gentoo-dev; +Cc: Michał Górny
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 <mgorny@gentoo.org>
---
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
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [gentoo-dev] [PATCH] install-qa-check.d: do not request DISTUTILS_USE_SETUPTOOLS=no
2022-01-09 8:15 [gentoo-dev] [PATCH] install-qa-check.d: do not request DISTUTILS_USE_SETUPTOOLS=no Michał Górny
@ 2022-01-09 8:22 ` Michał Górny
0 siblings, 0 replies; 2+ messages in thread
From: Michał Górny @ 2022-01-09 8:22 UTC (permalink / raw
To: gentoo-dev
On Sun, 2022-01-09 at 09:15 +0100, Michał Górny wrote:
> 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.
>
To be clearer:
If you have setuptools-60+ installed (currently p.masked but not for
very long), the check will always detect setuptools and demand "bdepend"
from packages using pure distutils. With older setuptools, the current
version will demand "no" instead -- effectively two devs could get
conflicting demands.
This change prevents that by allowing "bdepend" or "no" with
setuptools<60. Setuptools 60+ will still demand "bdepend" and this is
where we'll all eventually end up.
--
Best regards,
Michał Górny
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2022-01-09 8:22 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-01-09 8:15 [gentoo-dev] [PATCH] install-qa-check.d: do not request DISTUTILS_USE_SETUPTOOLS=no Michał Górny
2022-01-09 8:22 ` Michał Górny
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox