hasufell:
> Sergey Popov:
>> 18.08.2014 16:04, hasufell пишет:
>>>> You have my strong opposition on such change as well. It will turn
>>>> ebuilds into unreadable and undpredictable mess, please do not do that
>>>>
>>>
>>> They are already fairly unreadable and unpredictable.
>>>
>>
>> For you - maybe. But not for me.
>>
>> I am NOT talking about hacks like putting additional *.as files through
>> echo(hello Boost ebuild) or doing something crazy with subshells.
>>
>> But most of the eclass and ebuilds are readable quite simple if you read
>> devmanual, PMS and have a brain.
>>
>> Of course, there are sometimes non-trivial stuff that is hard to read.
>>
>> But majority of ebuilds and eclasses are fine to understand and predict.
>>
>> So, without examples from you, this discussion will lead to nowhere, so,
>> please let's stop it.
>>
> 
> From my time as a sunrise dev I strongly disagree. People have problems
> with understanding the mess, including actual programmers. They have
> enough technical understanding, but not the time or motivation to go
> through all those funny pitfalls which are NOT properly documented in
> devmanual.
> 
> The most popular example is what we are talking about right now:
> indirect inheritance for example via games.eclass which inherits
> base.eclass but does not export src_unpack so stuff like unpacker.eclass
> and git-2.eclass will likely just do nothing if you inherit them before
> games.eclass (which is required by games herd policy)... uhm. I doubt
> you would have guessed this one if you saw the plain ebuild. I know the
> pitfall, so I see it just from looking at the inherit line. But it is
> far from being obvious.
> 

Even more interesting... you can work around this by inheriting
base.eclass explicitly before e.g. unpacker.eclass, something like

inherit base unpacker games

=> unpacker_src_unpack() is carried out by default (and the ebuild
breaks if someone thinks the base.eclass is useless and removes it)

inherit unpacker games

=> unpacker_src_unpack is not carried out by default although
games.eclass does not directly overwrite it

If you think any of this is sensible...

Reply via email to