From: "Michał Górny" <mgorny@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: metadata/install-qa-check.d/
Date: Tue, 22 Sep 2020 11:12:52 +0000 (UTC) [thread overview]
Message-ID: <1600773169.4b0b254144141866ac51f66ad27cadf477f43da3.mgorny@gentoo> (raw)
commit: 4b0b254144141866ac51f66ad27cadf477f43da3
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 22 11:10:48 2020 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Sep 22 11:12:49 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4b0b2541
install-qa-check.d: Fix DUS check for DISTUTILS_OPTIONAL
Fix DISTUTILS_USE_SETUPTOOLS check to process all Python implementations
with egg-infos present in site-packages (possibly none). This fixes
eclass errors when trying to call distutils-r1 functions when it is
actually disabled in DISTUTILS_OPTIONAL ebuilds. It also reduces noise
while processing.
Closes: https://bugs.gentoo.org/744079
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
.../install-qa-check.d/60distutils-use-setuptools | 63 +++++++++++-----------
1 file changed, 33 insertions(+), 30 deletions(-)
diff --git a/metadata/install-qa-check.d/60distutils-use-setuptools b/metadata/install-qa-check.d/60distutils-use-setuptools
index 0a1688a83c5..698d832800f 100644
--- a/metadata/install-qa-check.d/60distutils-use-setuptools
+++ b/metadata/install-qa-check.d/60distutils-use-setuptools
@@ -4,31 +4,6 @@
# QA check: verify correctness of DISTUTILS_USE_SETUPTOOLS
# Maintainer: Python project <python@gentoo.org>
-get_expected_distutils_use_setuptools() {
- local sitedir=${D}$(python_get_sitedir)
- local egg new_expected
- while read -d $'\0' -r egg; do
- if [[ -f ${egg} ]]; then
- # if .egg-info is a file, it's plain distutils
- new_expected=no
- elif grep -q -s -F '[console_scripts]' "${egg}"/entry_points.txt
- then
- # entry_points == we need rdepend
- new_expected=rdepend
- elif grep -q -E -s '^setuptools' "${egg}"/requires.txt
- then
- # explicit rdepend in package metadata
- new_expected=rdepend
- else
- new_expected=bdepend
- fi
-
- if ! has "${new_expected}" "${expected[@]}"; then
- expected+=( "${new_expected[@]}" )
- fi
- done < <(find "${sitedir}" -name '*.egg-info' -print0)
-}
-
distutils_use_setuptools_check() {
# applicable only to ebuilds inheriting distutils-r1
[[ ${_DISTUTILS_R1} ]] || return
@@ -38,18 +13,46 @@ distutils_use_setuptools_check() {
[[ ${DISTUTILS_USE_SETUPTOOLS} == pyproject.toml ]] && return
local expected=()
- _distutils-r1_run_foreach_impl get_expected_distutils_use_setuptools
+ for impl in "${_PYTHON_SUPPORTED_IMPLS[@]}"; do
+ local EPYTHON PYTHON
+ _python_export "${impl}" EPYTHON PYTHON
+ [[ -x ${PYTHON} ]] || continue
+ local sitedir=${D}$(python_get_sitedir)
+ if [[ -d ${sitedir} ]]; then
+ local egg new_expected
+ while read -d $'\0' -r egg; do
+ if [[ -f ${egg} ]]; then
+ # if .egg-info is a file, it's plain distutils
+ new_expected=no
+ elif grep -q -s -F '[console_scripts]' \
+ "${egg}"/entry_points.txt
+ then
+ # entry_points == we need rdepend
+ new_expected=rdepend
+ elif grep -q -E -s '^setuptools' \
+ "${egg}"/requires.txt
+ then
+ # explicit rdepend in package metadata
+ new_expected=rdepend
+ else
+ new_expected=bdepend
+ fi
+
+ if ! has "${new_expected}" "${expected[@]}"; then
+ expected+=( "${new_expected[@]}" )
+ fi
+ done < <(find "${sitedir}" -name '*.egg-info' -print0)
+ fi
+ done
# at this point, expected can contain: no bdepend rdepend
- if [[ ${#expected[@]} -eq 0 ]]; then
- eerror "No .egg-info found. Please report a bug and CC python@"
- elif [[ ${#expected[@]} -gt 1 ]] && has no "${expected[@]}"; then
+ if [[ ${#expected[@]} -gt 1 ]] && has no "${expected[@]}"; then
# 'no' and '[rb]depend' are mutually exclusive
eerror "The package seems to have used distutils and setuptools simultaneously."
eerror "This could mean the package has bad conditions:"
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
+ elif [[ ${#expected[@]} -gt 0 ]]; then
# bdepend+rdepend=rdepend
has rdepend "${expected[@]}" && expected=( rdepend )
# at this point, expected should have exactly one value
next reply other threads:[~2020-09-22 11:12 UTC|newest]
Thread overview: 85+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-22 11:12 Michał Górny [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-08-13 4:59 [gentoo-commits] repo/gentoo:master commit in: metadata/install-qa-check.d/ Arthur Zamarin
2025-08-13 4:59 Arthur Zamarin
2025-06-01 12:35 Michał Górny
2025-04-19 1:27 Sam James
2025-04-18 17:21 Michał Górny
2025-04-18 15:22 Arthur Zamarin
2025-04-16 0:54 Michał Górny
2025-04-16 0:54 Michał Górny
2024-10-21 15:12 Michał Górny
2024-09-05 8:43 Michał Górny
2024-03-29 18:47 Sam James
2024-01-08 14:48 Michał Górny
2024-01-08 14:48 Michał Górny
2024-01-08 14:48 Michał Górny
2024-01-08 14:48 Michał Górny
2024-01-08 14:48 Michał Górny
2024-01-08 14:48 Michał Górny
2024-01-08 14:48 Michał Górny
2024-01-08 14:48 Michał Górny
2024-01-08 14:48 Michał Górny
2023-08-17 22:08 Ulrich Müller
2023-05-17 3:40 Michał Górny
2022-09-19 3:52 Sam James
2022-08-21 2:31 Sam James
2022-08-04 23:49 Sam James
2022-08-03 18:56 Sam James
2022-08-03 4:27 Sam James
2022-08-03 1:53 Sam James
2022-08-02 4:08 Michał Górny
2022-07-16 11:26 Michał Górny
2022-06-08 0:25 Mike Gilbert
2022-05-06 12:48 Ionen Wolkens
2022-05-05 23:38 Sam James
2022-05-02 6:01 Agostino Sarubbo
2022-04-30 19:13 Sam James
2022-04-28 3:06 Sam James
2022-04-27 0:13 Sam James
2022-04-26 23:45 Sam James
2022-04-26 15:32 Sam James
2022-04-19 18:31 Sam James
2022-04-19 18:31 Sam James
2022-04-17 14:21 Sam James
2022-04-17 14:18 Sam James
2022-03-04 1:26 Sam James
2022-03-04 1:26 Sam James
2022-02-01 18:19 Mike Gilbert
2022-02-01 1:37 Mike Gilbert
2022-01-16 9:40 Michał Górny
2021-08-19 1:35 Sam James
2021-08-16 2:12 Sam James
2021-08-16 2:12 Sam James
2021-08-16 2:12 Sam James
2021-08-16 2:12 Sam James
2021-08-02 8:17 Michał Górny
2021-07-03 8:16 Michał Górny
2021-07-01 8:57 Georgy Yakovlev
2021-06-28 18:47 Georgy Yakovlev
2021-06-28 8:56 Georgy Yakovlev
2021-06-28 0:12 Georgy Yakovlev
2021-06-27 2:08 Sam James
2021-06-26 23:25 Georgy Yakovlev
2021-06-26 23:09 Georgy Yakovlev
2021-05-29 15:15 Michał Górny
2021-05-25 5:13 Michał Górny
2021-04-29 11:42 Michał Górny
2021-04-29 11:42 Michał Górny
2021-04-29 11:42 Michał Górny
2021-04-29 11:42 Michał Górny
2021-04-09 23:17 Sam James
2020-10-17 19:01 Michał Górny
2020-10-16 7:42 Michał Górny
2020-09-22 7:33 Michał Górny
2020-09-22 7:00 Michał Górny
2020-09-22 7:00 Michał Górny
2020-09-21 17:48 Michał Górny
2020-09-21 15:30 Michał Górny
2020-02-13 18:59 Georgy Yakovlev
2020-01-20 20:45 Michael Orlitzky
2019-12-30 16:10 Michał Górny
2019-11-12 7:53 Sergei Trofimovich
2019-11-11 23:05 Zac Medico
2019-11-11 22:25 Sergei Trofimovich
2019-11-01 13:16 Michał Górny
2018-10-06 8:35 Michał Górny
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1600773169.4b0b254144141866ac51f66ad27cadf477f43da3.mgorny@gentoo \
--to=mgorny@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox