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 <rrangel@chromium.org>
Closes: https://github.com/gentoo/gentoo/pull/30469
Signed-off-by: Michał Górny <mgorny@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}
From: Raul E Rangel <rrangel@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 <rrangel@chromium.org>
Closes: https://github.com/gentoo/gentoo/pull/30469
Signed-off-by: Michał Górny <mgorny@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}
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 491 |
Nodes: | 16 (2 / 14) |
Uptime: | 105:51:26 |
Calls: | 9,684 |
Calls today: | 5 |
Files: | 13,725 |
Messages: | 6,175,398 |
Posted today: | 1 |