From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 8FF0F138A1A for ; Sat, 17 Jan 2015 12:07:46 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 66D39E0942; Sat, 17 Jan 2015 12:07:37 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id BE2C8E093A for ; Sat, 17 Jan 2015 12:07:36 +0000 (UTC) Received: from sf.home (host86-155-194-58.range86-155.btcentralplus.com [86.155.194.58]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: slyfox) by smtp.gentoo.org (Postfix) with ESMTPSA id 45A3334060A; Sat, 17 Jan 2015 12:07:35 +0000 (UTC) Received: by sf.home (Postfix, from userid 1000) id E7C1C137449DC; Sat, 17 Jan 2015 12:07:30 +0000 (GMT) From: Sergei Trofimovich To: gentoo-portage-dev@lists.gentoo.org Cc: Zac Medico , Sergei Trofimovich Subject: [gentoo-portage-dev] [PATCH] bin/eapi.sh: default to EAPI=0 when EAPI is unset Date: Sat, 17 Jan 2015 12:07:27 +0000 Message-Id: <1421496447-20561-1-git-send-email-slyfox@gentoo.org> X-Mailer: git-send-email 2.2.1 Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-portage-dev@lists.gentoo.org Reply-to: gentoo-portage-dev@lists.gentoo.org X-Archives-Salt: f178193e-aac1-416f-9c0d-a054eb771abd X-Archives-Hash: b298476f4bdcbf9ace05ad7f5ffe7ad5 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'. Signed-off-by: Sergei Trofimovich --- 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)$ ]] } -- 2.2.1