On 08/14/2012 02:44 AM, Michał Górny wrote:
> Hello,
> 
> As some of you may have noticed, lately introduced 'double include
> preventions' have caused changes in effective phase functions in a few
> ebuilds.

Can't that be avoided by putting the EXPORT_FUNCTIONS call outside of
the ifndef block? The function implementations themselves can be inside
the ifndef block, since that only need to be sourced once.

> Also, often it is undesirable that change in inherits of
> an eclass may cause an undesired change of exported functions. To solve
> these problems, we are proposing the following:
> 
> 
> 1. If an ebuild does not provide an explicit phase function, the phase
> functions *directly exported* by *directly inherited* eclasses are used
> to find a suitable default,
> 
> 2. Thus, if an eclass inherits another eclass and expects the phase
> functions of that eclass to be effective to the ebuild, it needs to
> create its own phase function and export it.
> 
> 
> This should make the ebuild behavior simpler to understand and saner.
> It should also fix the forementioned issues, and allow us to make
> the 'source eclasses only once'[1] proposal simpler.
> 
> [1]:https://bugs.gentoo.org/show_bug.cgi?id=422533

I'm not sure that your cure isn't worse than the disease.
-- 
Thanks,
Zac

Reply via email to