Gentoo Archives: gentoo-dev

From: Alec Warner <antarus@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] RFD: EAPI specification in ebuilds
Date: Thu, 08 Mar 2012 23:33:02
Message-Id: CAAr7Pr_m79AGcSuLgdz_EpWZjAzZZGyVMDRoW3nfab7YPN2OLw@mail.gmail.com
In Reply to: Re: [gentoo-dev] RFD: EAPI specification in ebuilds by Michael Orlitzky
On Thu, Mar 8, 2012 at 1:35 PM, Michael Orlitzky <michael@××××××××.com> wrote:
> On 03/08/2012 01:48 PM, Ciaran McCreesh wrote: >> >> >>> If they're code, they're code, and we need to execute them somehow. >> >> >> The notion of "execute them somehow" that's used doesn't fit in with >> the #! interpreter model. You aren't executing ebuilds via an >> interpreter. You're performing an action that involves using the data >> and code in an ebuild multiple times and in multiple different ways, >> and that may also involve doing the same to an installed package that >> is being replaced. >> > > I do understand that; but the fact that the data are computed in an ugly > turing-complete language complicates things. > > Did someone already propose replacing EAPI=foo with a function call akin to > inherit?
the eapi function doesn't exist in earlier eapis, so you end up doing the rename thing. Otherwise old package managers barf on the new syntax. I still think going with a comment is better than this.
> >  eapi 4 >  inherit whatever >  ... > > the call to eapi() would then set $EAPI accordingly. If the ebuild is being > executed directly, it could exit $EAPI; otherwise, it would continue > normally. That would give us an interface to the variable, and we wouldn't > need to know the EAPI ahead of time to do it as long as it's the first > function called in the ebuild. > > This is of course isomorphic to requiring a specific EAPI=4 format, but does > allow you to do stupid things like x=`seq 4 4`; eapi $x; if you want. >

Replies

Subject Author
Re: [gentoo-dev] RFD: EAPI specification in ebuilds Michael Orlitzky <michael@××××××××.com>