Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 97165 - KEYWORDS="-*" masking needs to be addressed
Summary: KEYWORDS="-*" masking needs to be addressed
Status: RESOLVED FIXED
Alias: None
Product: [OLD] Docs-developer
Classification: Unclassified
Component: Developers HOWTO (show other bugs)
Hardware: All All
: High major (vote)
Assignee: Gentoo Community Relations Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-06-27 00:11 UTC by Luke Maurer (Jyrinx)
Modified: 2005-09-15 19:28 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Luke Maurer (Jyrinx) 2005-06-27 00:11:26 UTC
The practice of using KEYWORDS="-*" as a sort of 
Comment 1 Luke Maurer (Jyrinx) 2005-06-27 00:11:26 UTC
The practice of using KEYWORDS="-*" as a sort of über-mask seems to be getting
very common (for instance, many packages that appear to be required to test GCC
4 are keyword-masked this way). emerge seems to have tacitly sanctioned this
practice by differentiating between "masked by: missing keyword" and "masked by:
-* keyword" in its output. The problem (purpose?) is that there appears to be no
way to emerge such a package without altering it or using an overlay - since
*no* keyword will allow it, there seems to be nothing that package.keywords can
do. I'm finding this surprising, and confusing - it's been years since you had
to edit ebuilds or /usr/portage/profiles/package.mask to emerge a package still
in testing. A forum search turned up nothing of help here - it seems that
everyone who's tinkering with GCC 4 is already comfortable with third-party
overlays, which seem like vast overkill.

If overlays are meant to be the only way to emerge a keyword-masked package,
this seems like a bad idea to me. The Gentoo ebuilds need testing, and if people
need to use an overlay to play with GCC 4, they're only using the official
ebuilds indirectly; I can't imagine introducing a degree of separation between
users and official ebuilds could help with debugging and overall user-developer
communication.

At any rate, I'm filing this as a bug against the policy doc because it dearly
needs to be addressed. The ebuild policy describes two levels of masking -
unstable keywords (~arch), for code that mostly works and needs testing by
users, and package.mask, for code that doesn't work well yet for many people and
should only be used for testing (or with patience :-) ). There is now a third
level which is in widespread use in core packages (like GCC). As a user, I'm
confused. What does KEYWORDS="-*" mean exactly? Presumably keyword masking is
meant to be stronger than ~arch masking, but is it stronger than hard masking?
If I can add to /etc/portage/package.{use,keywords} to emerge a masked package,
what do I do with a keyword-masked package? If they're really supposed to be
impossible to emerge, what are they doing in the official Portage tree? What's
wrong with package.mask - why did we need a third level of masking? Perhaps
these questions all have simple, reasonable answers, but none of them appear in
the policy document, leaving what I view as a gaping hole in the guidelines for
package masking.

(Am I wrong to expect to find these answers in the official policy docs? Sorry
if I'm barking up the wrong tree; I've become frustrated with trying to solve
this by looking through the forums (and even the Wiki), and I thought for
certain that the official Portage package policy would at least shed some light
on the intention of keyword masking.)

Reproducible: Always
Steps to Reproduce:

Actual Results:  
The ebuild policy is silent on the increasingly pervasive practice of using
KEYWORDS="-*" as a masking device.

Expected Results:  
Keyword masking of this kind should be addressed alongside the other types of
masking (~arch and package.mask).
Comment 2 Tom Wesley 2005-06-27 00:27:39 UTC
/etc/portage/package.keywords lists the keywords that YOUR ARE WILLING to accept
for that package.  IE:  if a package is marked as ~x86 only and you are on ppc,
you can add:
   app-cat/package ~x86
to /etc/portage/package.keywords and portage will let you at it.

As similar theory here.  gcc is marked -*, so adding
   sys-devel/gcc -*
to /etc/portage/package.keywords will allow you to have it.

Be gentle, and good luck ;)

Comment 3 SpanKY gentoo-dev 2005-06-27 05:55:44 UTC
put '-*' into package.keywords and it should emerge fine

that said, i dont think the usage of -* vs package.mask needs addressing
Comment 4 Luke Maurer (Jyrinx) 2005-06-29 22:18:13 UTC
Heh?! Wow ... KEYWORDS="-*" means "allow nothing", so if you include "-*" as a
keyword, that means "nothing", so it's allowed :-)

At any rate, I don't think I'd have ever thought of that; it really should be
put somewhere more obvious. Though, come to think of it, it does make sense this
way; "~x86" means we're fairly sure it should work okay on x86; "-*" means YMMV
(widely) on anything whatsoever.

I still would like to see some official mention of this, since it does amount to
a form of masking not covered by official policy. (Or maybe I'm just stubborn :-) )
Comment 5 SpanKY gentoo-dev 2005-06-30 05:47:08 UTC
i can update the portage(5) manpage to include an example of using -* but
otherwise this is a WONTFIX imo
Comment 6 SpanKY gentoo-dev 2005-09-15 19:28:07 UTC
portage(5) now documents -*