On 12 April 2023 16:58:58 BST, "Michał Górny" <mgo...@gentoo.org> wrote: >From: Raul E Rangel <rran...@chromium.org> > >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 <Python.h> > ^~~~~~~~~~ > 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 <rran...@chromium.org> >Closes: https://github.com/gentoo/gentoo/pull/30469 >Signed-off-by: Michał Górny <mgo...@gentoo.org> >--- > 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.