diff options
author | Michał Górny <mgorny@gentoo.org> | 2021-02-06 12:48:41 +0100 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2021-02-11 21:31:12 +0100 |
commit | 2c7398870085874bae3bb77c4b6bfc5895ddcf51 (patch) | |
tree | cbdfecfa74918dfdb9c4bafe05786542d8fb907d /eclass | |
parent | dev-python/py: remove unused patch(es) (diff) | |
download | gentoo-2c7398870085874bae3bb77c4b6bfc5895ddcf51.tar.gz gentoo-2c7398870085874bae3bb77c4b6bfc5895ddcf51.tar.bz2 gentoo-2c7398870085874bae3bb77c4b6bfc5895ddcf51.zip |
distutils-r1.eclass: Fix setuptools without setup.py
Invoke pyproject2setuppy directly instead of writing the setup.py
wrapper. This is necessary to correctly support setuptools via
pyproject.toml without setup.py. Writing setup.py confuses
pyproject2setuppy into running the setup.py code path instead of
the correct non-setup.py path.
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'eclass')
-rw-r--r-- | eclass/distutils-r1.eclass | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass index d5bb0df4d927..cb64938c8c32 100644 --- a/eclass/distutils-r1.eclass +++ b/eclass/distutils-r1.eclass @@ -523,7 +523,13 @@ esetup.py() { [[ ${BUILD_DIR} ]] && _distutils-r1_create_setup_cfg - set -- "${EPYTHON:-python}" setup.py "${mydistutilsargs[@]}" "${@}" + local setup_py=( setup.py ) + if [[ ${DISTUTILS_USE_SETUPTOOLS} == pyproject.toml ]]; then + # TODO: remove '.main' when we require v10 + setup_py=( -m pyproject2setuppy.main ) + fi + + set -- "${EPYTHON:-python}" "${setup_py[@]}" "${mydistutilsargs[@]}" "${@}" echo "${@}" >&2 "${@}" || die "${die_args[@]}" @@ -632,14 +638,7 @@ _distutils-r1_disable_ez_setup() { # Generate setup.py for pyproject.toml if requested. _distutils-r1_handle_pyproject_toml() { if [[ ! -f setup.py && -f pyproject.toml ]]; then - if [[ ${DISTUTILS_USE_SETUPTOOLS} == pyproject.toml ]]; then - cat > setup.py <<-EOF || die - #!/usr/bin/env python - from pyproject2setuppy.main import main - main() - EOF - chmod +x setup.py || die - else + if [[ ${DISTUTILS_USE_SETUPTOOLS} != pyproject.toml ]]; then eerror "No setup.py found but pyproject.toml is present. In order to enable" eerror "pyproject.toml support in distutils-r1, set:" eerror " DISTUTILS_USE_SETUPTOOLS=pyproject.toml" |