commit: 06086354fdd66fdf84c812f4be1757cb96e16c45 Author: Ulrich Müller <ulm <AT> gentoo <DOT> org> AuthorDate: Sat Mar 9 08:16:17 2019 +0000 Commit: Ulrich Müller <ulm <AT> gentoo <DOT> org> CommitDate: Tue Mar 19 01:18:37 2019 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=06086354
__dyn_test: Make fallback to WORKDIR conditional. When the fallback from S to WORKDIR was made conditional in EAPI 4, src_test() was originally omitted. This has been fixed retroactively in PMS: https://gitweb.gentoo.org/proj/pms.git/commit/?id=0038f90a942f0856ae2533b26f709002a3ec80ae There should be no issues with backwards compatibility of existing ebuilds. The feature is not used in the Gentoo repository. Plus, the scenario is very unlikely, because in src_test the fallback to WORKDIR could only happen for an ebuild that: - Has no files in A to be unpacked. - Doesn't define any of the unpack, prepare, configure, compile or install phases (otherwise it would die in one of these phases). Acked-by: Zac Medico <zmedico <AT> gentoo.org> Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org> bin/phase-functions.sh | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/bin/phase-functions.sh b/bin/phase-functions.sh index d8ebf3d3e..ee07ea0f9 100644 --- a/bin/phase-functions.sh +++ b/bin/phase-functions.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # Hardcoded bash lists are needed for backward compatibility with @@ -358,7 +358,7 @@ __abort_install() { __has_phase_defined_up_to() { local phase - for phase in unpack prepare configure compile install; do + for phase in unpack prepare configure compile test install; do has ${phase} ${DEFINED_PHASES} && return 0 [[ ${phase} == $1 ]] && return 1 done @@ -495,10 +495,14 @@ __dyn_test() { trap "__abort_test" SIGINT SIGQUIT __start_distcc - if [ -d "${S}" ]; then + if [[ -d ${S} ]]; then cd "${S}" - else + elif ___eapi_has_S_WORKDIR_fallback; then + cd "${WORKDIR}" + elif [[ -z ${A} ]] && ! __has_phase_defined_up_to test; then cd "${WORKDIR}" + else + die "The source directory '${S}' doesn't exist" fi if has test ${RESTRICT} ; then
