commit: a01d73c362fdbf9761835bd587345f5570276fbb Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org> AuthorDate: Sat Jan 17 12:07:27 2015 +0000 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> CommitDate: Sun Jan 18 05:05:12 2015 +0000 URL: http://sources.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=a01d73c3
bin/eapi.sh: default to EAPI=0 when EAPI is unset Observed as a breakage on binutils ebuilds: > ERROR: sys-devel/binutils-2.24-r3::gentoo failed (depend phase): > use() calls are not allowed in global scope > Call stack: > ebuild.sh, line 584: Called source 'binutils-2.24-r3.ebuild, > ebuild.sh, line 7: Called inherit 'toolchain-binutils' > ebuild.sh, line 280: Called __qa_source > '/gentoo-32k/gentoo-x86/eclass/toolchain-binutils.e > ebuild.sh, line 80: Called source > '/gentoo-32k/gentoo-x86/eclass/toolchain-binutils.eclass > toolchain-binutils.eclass, line 106: Called use 'multislot' > ebuild.sh, line 47: Called die > The specific snippet of code: > # These functions die because calls to them during the "depend" phase Zac confirms it's a safe thing to use ${EAPI-0} here: > ebuild.sh unsets the EAPI just before it sources the ebuild, > and then it does this after it sources the ebuild: > > [ "${EAPI+set}" = set ] || EAPI=0 > > So, for any code that is called while the ebuild is being sourced, using > ${EAPI-0} would be correct. For consistency and defense against future copy/paste errors converted all uses of ${EAPI} for ${EAPI-0} in 'bin/eapi.sh'. Fixes: b830bbc3b10b ("Disallow helpers in global scope in EAPI 6") Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org> Signed-off-by: Zac Medico <zmedico <AT> gentoo.org> --- bin/eapi.sh | 90 ++++++++++++++++++++++++++++++------------------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/bin/eapi.sh b/bin/eapi.sh index 7e7b54b..f1c677e 100644 --- a/bin/eapi.sh +++ b/bin/eapi.sh @@ -5,189 +5,189 @@ # PHASES ___eapi_has_pkg_pretend() { - [[ ! ${1-${EAPI}} =~ ^(0|1|2|3)$ ]] + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3)$ ]] } ___eapi_has_src_prepare() { - [[ ! ${1-${EAPI}} =~ ^(0|1)$ ]] + [[ ! ${1-${EAPI-0}} =~ ^(0|1)$ ]] } ___eapi_has_src_configure() { - [[ ! ${1-${EAPI}} =~ ^(0|1)$ ]] + [[ ! ${1-${EAPI-0}} =~ ^(0|1)$ ]] } ___eapi_default_src_test_disables_parallel_jobs() { - [[ ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi)$ ]] + [[ ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi)$ ]] } ___eapi_has_S_WORKDIR_fallback() { - [[ ${1-${EAPI}} =~ ^(0|1|2|3)$ ]] + [[ ${1-${EAPI-0}} =~ ^(0|1|2|3)$ ]] } # VARIABLES ___eapi_has_prefix_variables() { - [[ ! ${1-${EAPI}} =~ ^(0|1|2)$ || " ${FEATURES} " == *" force-prefix "* ]] + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2)$ || " ${FEATURES} " == *" force-prefix "* ]] } ___eapi_has_HDEPEND() { - [[ ${1-${EAPI}} =~ ^(5-hdepend)$ ]] + [[ ${1-${EAPI-0}} =~ ^(5-hdepend)$ ]] } ___eapi_has_RDEPEND_DEPEND_fallback() { - [[ ${1-${EAPI}} =~ ^(0|1|2|3)$ ]] + [[ ${1-${EAPI-0}} =~ ^(0|1|2|3)$ ]] } # HELPERS PRESENCE ___eapi_has_dohard() { - [[ ${1-${EAPI}} =~ ^(0|1|2|3)$ ]] + [[ ${1-${EAPI-0}} =~ ^(0|1|2|3)$ ]] } ___eapi_has_dosed() { - [[ ${1-${EAPI}} =~ ^(0|1|2|3)$ ]] + [[ ${1-${EAPI-0}} =~ ^(0|1|2|3)$ ]] } ___eapi_has_einstall() { - [[ ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] + [[ ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] } ___eapi_has_dohtml_deprecated() { - [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] } ___eapi_has_docompress() { - [[ ! ${1-${EAPI}} =~ ^(0|1|2|3)$ ]] + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3)$ ]] } ___eapi_has_nonfatal() { - [[ ! ${1-${EAPI}} =~ ^(0|1|2|3)$ ]] + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3)$ ]] } ___eapi_has_doheader() { - [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi)$ ]] + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi)$ ]] } ___eapi_has_usex() { - [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi)$ ]] + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi)$ ]] } ___eapi_has_get_libdir() { - [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] } ___eapi_has_einstalldocs() { - [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] } ___eapi_has_eapply() { - [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] } ___eapi_has_eapply_user() { - [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] } ___eapi_has_in_iuse() { - [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] } ___eapi_has_master_repositories() { - [[ ${1-${EAPI}} =~ ^(5-progress)$ ]] + [[ ${1-${EAPI-0}} =~ ^(5-progress)$ ]] } ___eapi_has_repository_path() { - [[ ${1-${EAPI}} =~ ^(5-progress)$ ]] + [[ ${1-${EAPI-0}} =~ ^(5-progress)$ ]] } ___eapi_has_available_eclasses() { - [[ ${1-${EAPI}} =~ ^(5-progress)$ ]] + [[ ${1-${EAPI-0}} =~ ^(5-progress)$ ]] } ___eapi_has_eclass_path() { - [[ ${1-${EAPI}} =~ ^(5-progress)$ ]] + [[ ${1-${EAPI-0}} =~ ^(5-progress)$ ]] } ___eapi_has_license_path() { - [[ ${1-${EAPI}} =~ ^(5-progress)$ ]] + [[ ${1-${EAPI-0}} =~ ^(5-progress)$ ]] } ___eapi_has_package_manager_build_user() { - [[ ${1-${EAPI}} =~ ^(5-progress)$ ]] + [[ ${1-${EAPI-0}} =~ ^(5-progress)$ ]] } ___eapi_has_package_manager_build_group() { - [[ ${1-${EAPI}} =~ ^(5-progress)$ ]] + [[ ${1-${EAPI-0}} =~ ^(5-progress)$ ]] } # HELPERS BEHAVIOR ___eapi_best_version_and_has_version_support_--host-root() { - [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi)$ ]] + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi)$ ]] } ___eapi_unpack_supports_xz() { - [[ ! ${1-${EAPI}} =~ ^(0|1|2)$ ]] + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2)$ ]] } ___eapi_unpack_supports_txz() { - [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] } ___eapi_econf_passes_--disable-dependency-tracking() { - [[ ! ${1-${EAPI}} =~ ^(0|1|2|3)$ ]] + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3)$ ]] } ___eapi_econf_passes_--disable-silent-rules() { - [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi)$ ]] + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi)$ ]] } ___eapi_econf_passes_--docdir_and_--htmldir() { - [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] } ___eapi_use_enable_and_use_with_support_empty_third_argument() { - [[ ! ${1-${EAPI}} =~ ^(0|1|2|3)$ ]] + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3)$ ]] } ___eapi_dodoc_supports_-r() { - [[ ! ${1-${EAPI}} =~ ^(0|1|2|3)$ ]] + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3)$ ]] } ___eapi_doins_and_newins_preserve_symlinks() { - [[ ! ${1-${EAPI}} =~ ^(0|1|2|3)$ ]] + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3)$ ]] } ___eapi_newins_supports_reading_from_standard_input() { - [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi)$ ]] + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi)$ ]] } ___eapi_helpers_can_die() { - [[ ! ${1-${EAPI}} =~ ^(0|1|2|3)$ ]] + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3)$ ]] } ___eapi_disallows_helpers_in_global_scope() { - [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-slot-abi|5|5-hdepend)$ ]] + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-slot-abi|5|5-hdepend)$ ]] } ___eapi_unpack_is_case_sensitive() { - [[ ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend)$ ]] + [[ ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend)$ ]] } ___eapi_unpack_supports_absolute_paths() { - [[ ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend)$ ]] + [[ ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend)$ ]] } ___eapi_die_can_respect_nonfatal() { - [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] } # OTHERS ___eapi_enables_failglob_in_global_scope() { - [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] + [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] } ___eapi_enables_globstar() { - [[ ${1-${EAPI}} =~ ^(4-python|5-progress)$ ]] + [[ ${1-${EAPI-0}} =~ ^(4-python|5-progress)$ ]] }