* [gentoo-portage-dev] [PATCH] bin/eapi.sh: default to EAPI=0 when EAPI is unset
@ 2015-01-17 12:07 Sergei Trofimovich
2015-01-17 20:20 ` [gentoo-portage-dev] " Zac Medico
0 siblings, 1 reply; 3+ messages in thread
From: Sergei Trofimovich @ 2015-01-17 12:07 UTC (permalink / raw
To: gentoo-portage-dev; +Cc: Zac Medico, Sergei Trofimovich
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 <slyfox@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)$ ]]
}
--
2.2.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [gentoo-portage-dev] Re: [PATCH] bin/eapi.sh: default to EAPI=0 when EAPI is unset
2015-01-17 12:07 [gentoo-portage-dev] [PATCH] bin/eapi.sh: default to EAPI=0 when EAPI is unset Sergei Trofimovich
@ 2015-01-17 20:20 ` Zac Medico
2015-01-18 5:14 ` Zac Medico
0 siblings, 1 reply; 3+ messages in thread
From: Zac Medico @ 2015-01-17 20:20 UTC (permalink / raw
To: Sergei Trofimovich, gentoo-portage-dev
On 01/17/2015 04:07 AM, Sergei Trofimovich wrote:
> 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 <slyfox@gentoo.org>
> ---
> bin/eapi.sh | 90 ++++++++++++++++++++++++++++++-------------------------------
> 1 file changed, 45 insertions(+), 45 deletions(-)
LGTM.
--
Thanks,
Zac
^ permalink raw reply [flat|nested] 3+ messages in thread
* [gentoo-portage-dev] Re: [PATCH] bin/eapi.sh: default to EAPI=0 when EAPI is unset
2015-01-17 20:20 ` [gentoo-portage-dev] " Zac Medico
@ 2015-01-18 5:14 ` Zac Medico
0 siblings, 0 replies; 3+ messages in thread
From: Zac Medico @ 2015-01-18 5:14 UTC (permalink / raw
To: Sergei Trofimovich, gentoo-portage-dev
On 01/17/2015 12:20 PM, Zac Medico wrote:
> On 01/17/2015 04:07 AM, Sergei Trofimovich wrote:
>> 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 <slyfox@gentoo.org>
>> ---
>> bin/eapi.sh | 90 ++++++++++++++++++++++++++++++-------------------------------
>> 1 file changed, 45 insertions(+), 45 deletions(-)
>
> LGTM.
>
This was an important fix, so I've pushed it to the master branch:
https://github.com/gentoo/portage/commit/a01d73c362fdbf9761835bd587345f5570276fbb
--
Thanks,
Zac
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-01-18 5:14 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-17 12:07 [gentoo-portage-dev] [PATCH] bin/eapi.sh: default to EAPI=0 when EAPI is unset Sergei Trofimovich
2015-01-17 20:20 ` [gentoo-portage-dev] " Zac Medico
2015-01-18 5:14 ` Zac Medico
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox