On Sun, 18 Oct 2015 12:17:58 +0200
Ulrich Mueller <u...@gentoo.org> wrote:

> >>>>> On Sun, 18 Oct 2015, Michał Górny wrote:  
> 
> > On Sun, 18 Oct 2015 11:54:40 +0200
> > Ulrich Mueller <u...@gentoo.org> wrote:  
> 
> >> So the question is if we should add a sentence like the following
> >> to the spec:
> >> 
> >> In EAPIs where it is supported, all ebuilds must run
> >> \t{eapply\_user} in the \t{src\_prepare} phase.  
> 
> > How about:  
> 
> >     In EAPIs listed in table blah blah blah, \t{eapply\_user} must
> >     be called exactly once in the \t{src\_prepare} phase.  
> 
> > Which emphasizes that eclass or default may do it instead of
> > ebuild.  
> 
> Yeah, that's better actually. We need not reference the table again
> though, since we do it in the sentence before.
> 
>     In EAPIs where it is supported, \t{eapply\_user} must be called
>     exactly once in the \t{src\_prepare} phase.


+1

But there is something important we've overlooked: should eclasses that
export src_prepare call eapply_user ? I think yes, otherwise they'd
make packages inheriting them violate the 'at least once rule'.

Now, what about the not so uncommon case of a package inheriting eclass1
& eclass2 both exporting src_prepare? this package would define:

src_prepare() {
        eclass1-src_prepare
        eclass2-src_prepare
}

but then it would violate the 'call eapply_user at most once' rule...

sadly, I can't come up with a solution there...

Reply via email to