public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] [PATCH 1/3] distutils-r1.eclass: Fix setuptools without setup.py
@ 2021-02-06 11:54 Michał Górny
  2021-02-06 11:54 ` [gentoo-dev] [PATCH 2/3] dev-python/tikzplotlib: Use distutils-r1 pyproject.toml support Michał Górny
  2021-02-06 11:54 ` [gentoo-dev] [PATCH 3/3] distutils-r1.eclass: Require EPYTHON to be set Michał Górny
  0 siblings, 2 replies; 4+ messages in thread
From: Michał Górny @ 2021-02-06 11:54 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

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>
---
 eclass/distutils-r1.eclass | 17 ++++++++---------
 1 file 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"
-- 
2.30.0



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [gentoo-dev] [PATCH 2/3] dev-python/tikzplotlib: Use distutils-r1 pyproject.toml support
  2021-02-06 11:54 [gentoo-dev] [PATCH 1/3] distutils-r1.eclass: Fix setuptools without setup.py Michał Górny
@ 2021-02-06 11:54 ` Michał Górny
  2021-02-06 13:23   ` Andrew Ammerlaan
  2021-02-06 11:54 ` [gentoo-dev] [PATCH 3/3] distutils-r1.eclass: Require EPYTHON to be set Michał Górny
  1 sibling, 1 reply; 4+ messages in thread
From: Michał Górny @ 2021-02-06 11:54 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 dev-python/tikzplotlib/tikzplotlib-0.9.7.ebuild | 16 +---------------
 1 file changed, 1 insertion(+), 15 deletions(-)

diff --git a/dev-python/tikzplotlib/tikzplotlib-0.9.7.ebuild b/dev-python/tikzplotlib/tikzplotlib-0.9.7.ebuild
index b1d6c8827e1d..eec9580243fc 100644
--- a/dev-python/tikzplotlib/tikzplotlib-0.9.7.ebuild
+++ b/dev-python/tikzplotlib/tikzplotlib-0.9.7.ebuild
@@ -3,6 +3,7 @@
 
 EAPI=7
 
+DISTUTILS_USE_SETUPTOOLS=pyproject.toml
 PYTHON_COMPAT=( python3_{7..9} )
 
 inherit distutils-r1 virtualx
@@ -35,21 +36,6 @@ BDEPEND="
 distutils_enable_tests pytest
 distutils_enable_sphinx doc dev-python/mock
 
-python_prepare_all() {
-	# setup.py was removed in commit f04323cfa575caf8a25a9236f55fe6baf1a33b20
-	# for some reason, DISTUTULS_USE_SETUPTOOLS="pyproject.toml" is not working
-	# it complains about file not found, setup.cfg does exist
-
-	cat > setup.py <<EOF || die
-from setuptools import setup
-
-if __name__ == "__main__":
-	setup()
-EOF
-
-	distutils-r1_python_prepare_all
-}
-
 python_test() {
 	local -x MPLBACKEND=Agg
 	virtx pytest -vv
-- 
2.30.0



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [gentoo-dev] [PATCH 3/3] distutils-r1.eclass: Require EPYTHON to be set
  2021-02-06 11:54 [gentoo-dev] [PATCH 1/3] distutils-r1.eclass: Fix setuptools without setup.py Michał Górny
  2021-02-06 11:54 ` [gentoo-dev] [PATCH 2/3] dev-python/tikzplotlib: Use distutils-r1 pyproject.toml support Michał Górny
@ 2021-02-06 11:54 ` Michał Górny
  1 sibling, 0 replies; 4+ messages in thread
From: Michał Górny @ 2021-02-06 11:54 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

There is no context in which the function is called without EPYTHON
set, so require it to be set instead of adding a fallback.

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/distutils-r1.eclass | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass
index cb64938c8c32..780becc3ace9 100644
--- a/eclass/distutils-r1.eclass
+++ b/eclass/distutils-r1.eclass
@@ -518,6 +518,8 @@ distutils_enable_tests() {
 esetup.py() {
 	debug-print-function ${FUNCNAME} "${@}"
 
+	[[ -n ${EPYTHON} ]] || die "EPYTHON unset, invalid call context"
+
 	local die_args=()
 	[[ ${EAPI} != [45] ]] && die_args+=( -n )
 
@@ -529,7 +531,7 @@ esetup.py() {
 		setup_py=( -m pyproject2setuppy.main )
 	fi
 
-	set -- "${EPYTHON:-python}" "${setup_py[@]}" "${mydistutilsargs[@]}" "${@}"
+	set -- "${EPYTHON}" "${setup_py[@]}" "${mydistutilsargs[@]}" "${@}"
 
 	echo "${@}" >&2
 	"${@}" || die "${die_args[@]}"
-- 
2.30.0



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [gentoo-dev] [PATCH 2/3] dev-python/tikzplotlib: Use distutils-r1 pyproject.toml support
  2021-02-06 11:54 ` [gentoo-dev] [PATCH 2/3] dev-python/tikzplotlib: Use distutils-r1 pyproject.toml support Michał Górny
@ 2021-02-06 13:23   ` Andrew Ammerlaan
  0 siblings, 0 replies; 4+ messages in thread
From: Andrew Ammerlaan @ 2021-02-06 13:23 UTC (permalink / raw
  To: gentoo-dev

On 06/02/2021 12:54, Michał Górny wrote:
> Signed-off-by: Michał Górny <mgorny@gentoo.org>
> ---
>   dev-python/tikzplotlib/tikzplotlib-0.9.7.ebuild | 16 +---------------
>   1 file changed, 1 insertion(+), 15 deletions(-)
> 
> diff --git a/dev-python/tikzplotlib/tikzplotlib-0.9.7.ebuild b/dev-python/tikzplotlib/tikzplotlib-0.9.7.ebuild
> index b1d6c8827e1d..eec9580243fc 100644
> --- a/dev-python/tikzplotlib/tikzplotlib-0.9.7.ebuild
> +++ b/dev-python/tikzplotlib/tikzplotlib-0.9.7.ebuild
> @@ -3,6 +3,7 @@
>   
>   EAPI=7
>   
> +DISTUTILS_USE_SETUPTOOLS=pyproject.toml
>   PYTHON_COMPAT=( python3_{7..9} )
>   
>   inherit distutils-r1 virtualx
> @@ -35,21 +36,6 @@ BDEPEND="
>   distutils_enable_tests pytest
>   distutils_enable_sphinx doc dev-python/mock
>   
> -python_prepare_all() {
> -	# setup.py was removed in commit f04323cfa575caf8a25a9236f55fe6baf1a33b20
> -	# for some reason, DISTUTULS_USE_SETUPTOOLS="pyproject.toml" is not working
> -	# it complains about file not found, setup.cfg does exist
> -
> -	cat > setup.py <<EOF || die
> -from setuptools import setup
> -
> -if __name__ == "__main__":
> -	setup()
> -EOF
> -
> -	distutils-r1_python_prepare_all
> -}
> -
>   python_test() {
>   	local -x MPLBACKEND=Agg
>   	virtx pytest -vv
> 

Looks good to me

Thank you mgorny



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-02-06 13:24 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-02-06 11:54 [gentoo-dev] [PATCH 1/3] distutils-r1.eclass: Fix setuptools without setup.py Michał Górny
2021-02-06 11:54 ` [gentoo-dev] [PATCH 2/3] dev-python/tikzplotlib: Use distutils-r1 pyproject.toml support Michał Górny
2021-02-06 13:23   ` Andrew Ammerlaan
2021-02-06 11:54 ` [gentoo-dev] [PATCH 3/3] distutils-r1.eclass: Require EPYTHON to be set 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