commit:     40c3f5de5bc7bb569da1a65da80bb30556fbfc9e
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jan 31 11:29:12 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Feb  7 14:24:54 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=40c3f5de

distutils-r1.eclass: esetup.py, omit setup.cfg check in PEP517 mode

Closes: https://bugs.gentoo.org/891959
Closes: https://github.com/gentoo/gentoo/pull/29354
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 eclass/distutils-r1.eclass | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass
index 30398f9871cd..34f54da85ac3 100644
--- a/eclass/distutils-r1.eclass
+++ b/eclass/distutils-r1.eclass
@@ -647,7 +647,13 @@ esetup.py() {
 
        local setup_py=( setup.py )
        if [[ ! -f setup.py ]]; then
-               if [[ ! -f setup.cfg ]]; then
+               # The following call can succeed even if the package does not
+               # feature any setuptools configuration.  In non-PEP517 mode this
+               # could lead to installing an "empty" package.  In PEP517 mode,
+               # we verify the build system when invoking the backend,
+               # rendering this check redundant (and broken for projects using
+               # pyproject.toml configuration).
+               if [[ ! ${DISTUTILS_USE_PEP517} && ! -f setup.cfg ]]; then
                        die "${FUNCNAME}: setup.py nor setup.cfg not found"
                fi
                setup_py=( -c "from setuptools import setup; setup()" )

Reply via email to