public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download: 
* [gentoo-dev] Issues regarding glep-55  (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009)
       [not found]                               ` <20090222234800.29d64b8d@snowcone>
@ 2009-02-23  2:15 99%                             ` Luca Barbato
  0 siblings, 0 replies; 1+ results
From: Luca Barbato @ 2009-02-23  2:15 UTC (permalink / raw
  To: Ciaran McCreesh; +Cc: gentoo-council, gentoo-dev

Ciaran McCreesh wrote:
> Because your proposal addresses none of the underlying problems which
> GLEP 55 was created to solve.

As said long ago the glep doesn't tell enough:

"The current way of specifying the EAPI in ebuilds is flawed. In order 
to get the EAPI the package manager needs to source the ebuild, which 
itself needs the EAPI in the first place. Otherwise it imposes a serious 
limitation, namely every ebuild, using any of the future EAPIs, will 
have to be source'able by old package managers and hence there is no way 
to do any of the following:

         * Change the behaviour of inherit in any way (for example, to 
extend or change eclass functionality).
         * Add new global scope functions in any sane way.
         * Extend versioning rules in an EAPI - for example, addition of 
the scm suffix - GLEP54"

Let's try to start with a common workflow for the user:
- an user with an ancient version of portage syncs
- it requires a package
- it looks at the cache ($portdir/metadata/cache/)
- picks the best entry from the ones showing an eapi it understands
- keeps going.

Apparently we do not have any issue...

Now problems:
1- the cache could get a non compatible change
2- the user triggers a metadata cache regeneration
    -> the ebuild is sourced -> portage could fail or do something 
unpredictable
3- overlays do not provide metadata cache
4- A package manager different from portage do not use the provided cache.

Solutions:
1- move the incompatible cache out of ancient portage scope (like in a 
separate directory)
2- The user will get unpredictable behavior, but portage tell you when 
upgrading is needed...
3- you'd have to disable them
4- unsupported.

Apparently for this side we don't have much to do if we get a valid cache.

Ebuilds have to be added to portage so here the workflow for the developer:

- new ebuild is sourced
- cache is generated
- manifest is built

In this case we have a problem if the source step is a single one, 
portage won't know in advance how to behave.

So the first step has to be split in two:
- first portage discovers which is the eapi version
- then behave as defined by the eapi

The problem is that right now sourcing is done by having an instructed 
bash. So the simplest way to get the first step done is parsing the 
ebuild file with something different like file(1) and then instruct bash 
and do the parsing.

This will solve the issue for the developer.

What is proposed in glep-55 seems to aim to solve both issues at the 
same time (it isn't stated) by switching file extension every time the 
eapi is changed. This is slightly against the principle of the least 
surprise and apparently is disliked by enough people to lead the 
situation to be discussed in the council.

The fact the glep itself is too much terse doesn't help acknowledging 
the problems it aims to solve and the fact it fails to state actual 
issues that may need a solution doesn't make it worth the effort and 
disruption it would lead.

lu

-- 

Luca Barbato
Gentoo Council Member
Gentoo/linux Gentoo/PPC
http://dev.gentoo.org/~lu_zero




^ permalink raw reply	[relevance 99%]

Results 1-1 of 1 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
     [not found]     <1234257125.18160.2016.camel@localhost>
     [not found]     ` <1234450419.20950.2.camel@localhost>
     [not found]       ` <20090212160045.GB3642@comet>
     [not found]         ` <20090212161644.GD3642@comet>
     [not found]           ` <20090212162103.256b003f@snowcone>
     [not found]             ` <20090212171055.GA3652@comet>
     [not found]               ` <20090212172109.778fb268@snowcone>
     [not found]                 ` <20090212173743.GD3652@comet>
     [not found]                   ` <20090212180350.0d9a9df5@snowcone>
     [not found]                     ` <1235037961.13198.779.camel@localhost>
     [not found]                       ` <20090219125124.33eaa66c@snowcone>
     [not found]                         ` <1235077892.13198.1923.camel@localhost>
     [not found]                           ` <20090222171658.278ae167@halo.dirtyepic.sk.ca>
     [not found]                             ` <49A1E1CB.1000806@gentoo.org>
     [not found]                               ` <20090222234800.29d64b8d@snowcone>
2009-02-23  2:15 99%                             ` [gentoo-dev] Issues regarding glep-55 (Was: [gentoo-council] Re: Preliminary Meeting-Topics for 12 February 2009) Luca Barbato

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox