Re: [gentoo-dev] [PATCH] distutils-r1.eclass: Add PYTHON_DEPS to DEPEND unconditionally

2023-04-19 Thread Michał Górny
On Wed, 2023-04-12 at 17:58 +0200, Michał Górny wrote:
> From: Raul E Rangel 
> 
> Python distutils packages that build C extensions are currently not
> declaring PYTHON_DEPS as part of their DEPEND declaration. This results
> in build errors when cross compiling using ROOT=.
> 
> i.e.,
>In file included from src/setproctitle.c:14:
>In file included from src/spt.h:15:
>src/spt_python.h:15:10: fatal error: 'Python.h' file not found
>#include 
> ^~
>1 error generated.
> 
> Since the distutils-r1 eclass currently sets the RDEPEND and BDEPEND
> variables it makes sense to have the eclass also set the DEPEND
> variable. We unconditionally add it to keep the API simple. If in the
> future this is problematic, we can maybe add a DISTUTILS_PURE_PYTHON
> eclass variable that will omit the DEPEND.
> 
> Signed-off-by: Raul E Rangel 
> Closes: https://github.com/gentoo/gentoo/pull/30469
> Signed-off-by: Michał Górny 
> ---
>  eclass/distutils-r1.eclass | 10 --
>  1 file changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass
> index 09684781de2a..7e9cd6ef9b5a 100644
> --- a/eclass/distutils-r1.eclass
> +++ b/eclass/distutils-r1.eclass
> @@ -34,8 +34,8 @@
>  # functions, you should consider calling the defaults (and especially
>  # distutils-r1_python_prepare_all).
>  #
> -# Please note that distutils-r1 sets RDEPEND and BDEPEND (or DEPEND
> -# in earlier EAPIs) unconditionally for you.
> +# Please note that distutils-r1 sets BDEPEND, DEPEND, and RDEPEND
> +# unconditionally for you.
>  #
>  # Also, please note that distutils-r1 will always inherit python-r1
>  # as well. Thus, all the variables defined and documented there are
> @@ -307,6 +307,12 @@ _distutils_set_globals() {
>   fi
>  
>   if [[ ! ${DISTUTILS_OPTIONAL} ]]; then
> + # This dependency is only required for packages that build
> + # C extensions. It was deemed cleaner to unconditionally
> + # add the dependency than add it to the individual
> + # ebuilds that need it.
> + DEPEND="${PYTHON_DEPS}"
> +
>   RDEPEND="${PYTHON_DEPS} ${rdep}"
>   BDEPEND="${PYTHON_DEPS} ${bdep}"
>   REQUIRED_USE=${PYTHON_REQUIRED_USE}

Actually, I'm withdrawing this one.  We'd be adding a dedicated variable
controlling this, and a few other features specific to packages
installing Python extensions.

-- 
Best regards,
Michał Górny




Re: [gentoo-dev] [PATCH] distutils-r1.eclass: Add PYTHON_DEPS to DEPEND unconditionally

2023-04-12 Thread James Le Cuirot
On 12 April 2023 16:58:58 BST, "Michał Górny"  wrote:
>From: Raul E Rangel 
>
>Python distutils packages that build C extensions are currently not
>declaring PYTHON_DEPS as part of their DEPEND declaration. This results
>in build errors when cross compiling using ROOT=.
>
>i.e.,
>   In file included from src/setproctitle.c:14:
>   In file included from src/spt.h:15:
>   src/spt_python.h:15:10: fatal error: 'Python.h' file not found
>   #include 
>^~
>   1 error generated.
>
>Since the distutils-r1 eclass currently sets the RDEPEND and BDEPEND
>variables it makes sense to have the eclass also set the DEPEND
>variable. We unconditionally add it to keep the API simple. If in the
>future this is problematic, we can maybe add a DISTUTILS_PURE_PYTHON
>eclass variable that will omit the DEPEND.
>
>Signed-off-by: Raul E Rangel 
>Closes: https://github.com/gentoo/gentoo/pull/30469
>Signed-off-by: Michał Górny 
>---
> eclass/distutils-r1.eclass | 10 --
> 1 file changed, 8 insertions(+), 2 deletions(-)
>
>diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass
>index 09684781de2a..7e9cd6ef9b5a 100644
>--- a/eclass/distutils-r1.eclass
>+++ b/eclass/distutils-r1.eclass
>@@ -34,8 +34,8 @@
> # functions, you should consider calling the defaults (and especially
> # distutils-r1_python_prepare_all).
> #
>-# Please note that distutils-r1 sets RDEPEND and BDEPEND (or DEPEND
>-# in earlier EAPIs) unconditionally for you.
>+# Please note that distutils-r1 sets BDEPEND, DEPEND, and RDEPEND
>+# unconditionally for you.
> #
> # Also, please note that distutils-r1 will always inherit python-r1
> # as well. Thus, all the variables defined and documented there are
>@@ -307,6 +307,12 @@ _distutils_set_globals() {
>   fi
> 
>   if [[ ! ${DISTUTILS_OPTIONAL} ]]; then
>+  # This dependency is only required for packages that build
>+  # C extensions. It was deemed cleaner to unconditionally
>+  # add the dependency than add it to the individual
>+  # ebuilds that need it.
>+  DEPEND="${PYTHON_DEPS}"
>+
>   RDEPEND="${PYTHON_DEPS} ${rdep}"
>   BDEPEND="${PYTHON_DEPS} ${bdep}"
>   REQUIRED_USE=${PYTHON_REQUIRED_USE}

I think that's reasonable.
-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.



[gentoo-dev] [PATCH] distutils-r1.eclass: Add PYTHON_DEPS to DEPEND unconditionally

2023-04-12 Thread Michał Górny
From: Raul E Rangel 

Python distutils packages that build C extensions are currently not
declaring PYTHON_DEPS as part of their DEPEND declaration. This results
in build errors when cross compiling using ROOT=.

i.e.,
   In file included from src/setproctitle.c:14:
   In file included from src/spt.h:15:
   src/spt_python.h:15:10: fatal error: 'Python.h' file not found
   #include 
^~
   1 error generated.

Since the distutils-r1 eclass currently sets the RDEPEND and BDEPEND
variables it makes sense to have the eclass also set the DEPEND
variable. We unconditionally add it to keep the API simple. If in the
future this is problematic, we can maybe add a DISTUTILS_PURE_PYTHON
eclass variable that will omit the DEPEND.

Signed-off-by: Raul E Rangel 
Closes: https://github.com/gentoo/gentoo/pull/30469
Signed-off-by: Michał Górny 
---
 eclass/distutils-r1.eclass | 10 --
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass
index 09684781de2a..7e9cd6ef9b5a 100644
--- a/eclass/distutils-r1.eclass
+++ b/eclass/distutils-r1.eclass
@@ -34,8 +34,8 @@
 # functions, you should consider calling the defaults (and especially
 # distutils-r1_python_prepare_all).
 #
-# Please note that distutils-r1 sets RDEPEND and BDEPEND (or DEPEND
-# in earlier EAPIs) unconditionally for you.
+# Please note that distutils-r1 sets BDEPEND, DEPEND, and RDEPEND
+# unconditionally for you.
 #
 # Also, please note that distutils-r1 will always inherit python-r1
 # as well. Thus, all the variables defined and documented there are
@@ -307,6 +307,12 @@ _distutils_set_globals() {
fi
 
if [[ ! ${DISTUTILS_OPTIONAL} ]]; then
+   # This dependency is only required for packages that build
+   # C extensions. It was deemed cleaner to unconditionally
+   # add the dependency than add it to the individual
+   # ebuilds that need it.
+   DEPEND="${PYTHON_DEPS}"
+
RDEPEND="${PYTHON_DEPS} ${rdep}"
BDEPEND="${PYTHON_DEPS} ${bdep}"
REQUIRED_USE=${PYTHON_REQUIRED_USE}
-- 
2.40.0