On Tue, Jun 24, 2008 at 12:05:39PM +0200, Tiziano M??ller wrote:
> Brian Harring wrote:
> 
> > On Tue, Jun 24, 2008 at 01:53:55AM +0200, Robert Buchholz wrote:
> >> Hi,
> >> 
> >> I've stumbled upon an inconsitency between package managers the other
> >> day [1], which was due to both an ebuild and an eclass defining
> >> inconsisting KEYWORDS.
> >> 
> >> bla-1.ebuild:
> >>   inherit myeclass
> >>   KEYWORDS="~arch"
> >> 
> >> myeclass.eclass:
> >>   KEYWORDS="arch"
> >> 
> >> Portage will resolve this by overwriting the variable, so the last
> >> (~arch) wins. Paludis, on the other hand, merges the variables, so it
> >> is KEYWORDS="~arch arch".
> >> 
> >> The PMS draft [2] defines that "IUSE, DEPEND, RDEPEND and PDEPEND"
> >> variables be merged when defined in both eclass and ebuild (Section
> >> 7.2), but only says "May be de?ned in an eclass" about KEYWORDS
> >> (Section 8.2).
> >> 
> >> Anyone up to toss a coin whose bug it is, and maybe we can have a more
> >> specific wording in the PMS?
> > 
> > Paludis bug; if you want KEYWORDS incremental, it'll need to be in
> >>=eapi2, too nasty of a change to shoehorn into existing (in use)
> > eapis.
> well, if the PMS doesn't say anything about it, it's a lack of specification
> and not a bug of a package manager.

Falls to the same people regardless; in this case it is a bug of the 
manager since longstanding behaviour of keywords from eclasses has 
*always* been non-incremental.

Regardless, omission of keywords from the list of incremental eclasses 
doesn't equate to "do what you want"- it means "it's not incremental".


> Can you please give more info why this is "too nasty"?

The original post gave an example of why this can't be shoehorned in- 
bla-1, instead of being marked unstable, becomes stable.  I might add 
that it becomes stable effectively *always* also due to stable 
keywords existing in eclass.

The use case for this isn't particularly grand either- the only real 
use case for such behaviour is shifting unstable keywords into the 
eclass, and storing the stable keywords in the ebuild.

Problem with that however is that if a consumer of the eclass ever 
needs to be marked unusable (temporarily or otherwise) for a specific 
arch, the paludis keyword stacking means that the eclass would have to 
have that arch pruned from the eclass (sticking -$ARCH into the ebuild 
would most likely not suffice due to existing portage keyword 
visibility filters).

Basically, if we were talking about tweaking IUSE, then I'd be singing 
a different tune- KEYWORDS behaviour, specifically keywords visibility 
filtering of available packages means that this isn't easily changable 
w/out resulting in past managers that worked properly, no longer 
working properly.

For IUSE, you could likely get away with shoehorning this in- older 
managers generally didn't care much about IUSE (although 
built_with_use is a notable exception).

Cheers.
~brian

Attachment: pgp9ke0PHjt3J.pgp
Description: PGP signature

Reply via email to