On 01/16/2015 10:18 AM, Zac Medico wrote:
> On 01/16/2015 02:14 AM, Sergei Trofimovich wrote:
>> On Mon, 1 Dec 2014 22:28:34 +0100
>> Michał Górny <[email protected]> wrote:
>>
>>> Disallow calling most of the ebuild helpers in global scope since they
>>> are meaningless in that context. Most of them are also prohibited by PMS
>>> for all EAPIs, so EAPI 6 sounds like a good moment to finally enforce
>>> that restriction.
>>> ---
>>> bin/eapi.sh | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/bin/eapi.sh b/bin/eapi.sh
>>> index e0ade02..5ab92f4 100644
>>> --- a/bin/eapi.sh
>>> +++ b/bin/eapi.sh
>>> @@ -159,7 +159,7 @@ ___eapi_helpers_can_die() {
>>> }
>>>
>>> ___eapi_disallows_helpers_in_global_scope() {
>>> - [[ ${1-${EAPI}} =~ ^(4-python|5-progress)$ ]]
>>> + [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-slot-abi|5|5-hdepend)$ ]]
>>> }
>>>
>>> ___eapi_unpack_is_case_sensitive() {
>>
>> Looks like it cries on ebuilds with unset EAPI in main tree (attached).
>> Can be easily fixed in tree by adding EAPI=0, but better handle it
>> here: ${EAPI-0} (untested!)
>
> Using ${EAPI-0} would not be the correct fix, because portage is
> supposed to export the EAPI that was previously determined via the
> _parse_eapi_ebuild_head function (preprocessor).
Actually, 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.
--
Thanks,
Zac