From f9b70d39ab2c06e476f3e8dc09d1d8f16e74e099 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Micha=C5=82=20G=C3=B3rny?= Date: Sun, 1 Dec 2019 17:12:55 +0100 Subject: [PATCH] distutils-r1.eclass: Handle missing BUILD_DIR for any-r1 API MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit When any-r1 API is used for *_all sub-phases, an implementation that was not selected by the user may be used. In this case, DISTUTILS_IN_SOURCE_BUILD will not create the BUILD_DIR for this implementation; however, the phase runner will still try to enter it and fail. Handle this gracefully by falling back to ${S}. Closes: https://bugs.gentoo.org/701506 Signed-off-by: Michał Górny --- eclass/distutils-r1.eclass | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass index f44f0aee9c21..0c5d6781f83d 100644 --- a/eclass/distutils-r1.eclass +++ b/eclass/distutils-r1.eclass @@ -821,7 +821,11 @@ distutils-r1_run_phase() { debug-print-function ${FUNCNAME} "${@}" if [[ ${DISTUTILS_IN_SOURCE_BUILD} ]]; then - if [[ ! ${DISTUTILS_SINGLE_IMPL} ]]; then + # only force BUILD_DIR if implementation is explicitly enabled + # for building; any-r1 API may select one that is not + # https://bugs.gentoo.org/701506 + if [[ ! ${DISTUTILS_SINGLE_IMPL} ]] && + has "${EPYTHON/./_}" ${PYTHON_TARGETS}; then cd "${BUILD_DIR}" || die fi local BUILD_DIR=${BUILD_DIR}/build -- 2.26.2