Do not apply PATCHES and user patches (either via the EAPI 6 default or
pre-EAPI 5 code) when DISTUTILS_OPTIONAL is being used. In this case,
distutils functions are usually called conditionally, in a subdirectory,
while both PATCHES and user patches are usually intended to be applied
top-level.
There is no ebuild relying on distutils-r1_src_prepare applying patches
with DISTUTILS_OPTIONAL. In fact, there are ebuilds which work around
this behavior.
---
eclass/distutils-r1.eclass | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass
index e8de5ad..afd29ed 100644
--- a/eclass/distutils-r1.eclass
+++ b/eclass/distutils-r1.eclass
@@ -315,11 +315,13 @@ _distutils-r1_disable_ez_setup() {
distutils-r1_python_prepare_all() {
debug-print-function ${FUNCNAME} "${@}"
- if [[ ${EAPI} != [45] ]]; then
- default
- else
- [[ ${PATCHES} ]] && epatch "${PATCHES[@]}"
- epatch_user
+ if [[ ! ${DISTUTILS_OPTIONAL} ]]; then
+ if [[ ${EAPI} != [45] ]]; then
+ default
+ else
+ [[ ${PATCHES} ]] && epatch "${PATCHES[@]}"
+ epatch_user
+ fi
fi
# by default, use in-source build if python_prepare() is used
--
2.8.2