On Sun, 18 Oct 2015 10:31:09 +0200
Alexis Ballier <aball...@gentoo.org> wrote:

> On Sat, 17 Oct 2015 22:47:28 +0200
> Ulrich Mueller <u...@gentoo.org> wrote:
> 
> > >>>>> On Sat, 17 Oct 2015, Alexis Ballier wrote:    
> >   
> > > Sorry for coming very late on this, but what is the rationale behind
> > > setting in stone an 'eapply' different to an 'epatch' that has been
> > > widely tested for decades now ? Or even defining eapply in PMS ?    
> > 
> > The rationale is that we cannot apply patches in the default
> > src_prepare() unless there is a patch function in the package manager
> > itself. Obviously the default phase cannot call a function from an
> > eclass.  
> 
> well, that was the idea behind base.eclass :)
> why not just improving it ?

Let me Ciaran the answer for you: because we want a stable API. We
don't want random eclass that random developer will randomly change
every second month, accidentally breaking a number of ebuilds.

> or give proper scoping to inherit wrt EXPORT_FUNCTIONS, ala python:
> 'from base inherit src_prepare'

bugs.gentoo.org -> PMS/EAPI, and block 'Future EAPI'.

> > > Also, mandating -p1 seems quite limiting: e.g. 'svn diff -rX:Y'
> > > extracts -p0 patches by default here. Or when $S is actually a
> > > subdir of a repository, this will make standard git format-patch
> > > generated patches unusable.    
> > 
> > Limiting the level to -p1 (and not doing autodetection) was a design
> > decision. eapply is really meant for simple cases like default
> > src_prepare applying patches listed in the PATCHES variable.
> > For anything that is more complicated there will still be epatch.  
> 
> 
> yes, I understand that, but this one was more intended for the
> rationale and for eapply_user:
> - why should I ever call eapply instead of epatch ?

Because it's built-in, simpler, faster and more failure-proof.

> - why should I ever want eapi6 src_prepare instead of
>   base_src_prepare ?

base.eclass is deprecated. You are going to get in trouble for using
it.

> - what do I, as en ebuild writer, gain from this?

Reliable patching. Unlike epatch, eapply will not succeed when
the patch unexpectedly applied to the wrong directory.

> As for eapply_user: Since it seems perfectly fine to have eapply_user a
> noop, and most parts are implementation defined, why mandating
> eapply_user to use such a limited eapply instead of leaving it
> implementation defined ?

Principle of least surprise. Reusability of patches.

-- 
Best regards,
Michał Górny
<http://dev.gentoo.org/~mgorny/>

Attachment: pgpeKpOn9ShP_.pgp
Description: OpenPGP digital signature

Reply via email to