distutils-r1.eclass: Do not apply patches if DISTUTILS_OPTIONAL is used
authorMichał Górny <mgorny@gentoo.org>
Sun, 15 May 2016 09:25:51 +0000 (11:25 +0200)
committerMichał Górny <mgorny@gentoo.org>
Sat, 21 May 2016 19:38:36 +0000 (21:38 +0200)
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

index e8de5ad6c4ebe172fada98f586ff5484d12b4ce8..afd29ed272ffa68badb11deb1f797e094d255a14 100644 (file)
@@ -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