Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 43670 - sys-kernel/linux-headers: retain -* keyword
Summary: sys-kernel/linux-headers: retain -* keyword
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: High major (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-03-03 16:36 UTC by Ed Catmur
Modified: 2004-08-14 04:34 UTC (History)
2 users (show)

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 Ed Catmur 2004-03-03 16:36:14 UTC
Changelog:

  03 Mar 2004; <agriffis@gentoo.org> linux-headers-2.4.23.ebuild:
  Add alpha and ia64 keywords to linux-headers-2.4.23 which should fix
  compilation of many userland applications (such as sash) which could not build
  with the older headers.

Keywords is now KEYWORDS="ia64 ~alpha".

This forces downgrading where package was installed using package.keywords to allow installation of this version on e.g. x86 machines.
I believe the line should be KEYWORDS="-* ia64 ~alpha".
Comment 1 Aron Griffis (RETIRED) gentoo-dev 2004-03-03 20:16:23 UTC
Whoah, I've added the -* back in, but could you explain this?  This is the first time I've heard of -* having a special meaning in portage.  In the past it has meant the same thing as "", just an additional flag developers.  Carpaski, genone, iggy, jstubbs?  What's the story here?
Comment 2 Jason Stubbs (RETIRED) gentoo-dev 2004-03-04 00:44:07 UTC
I couldn't reproduce this. I found that portage tried to downgrade regardless of whether "-*" was in KEYWORDS or not. This makes complete sense from looking at the portage man page.

             package.keywords
                     Per  package  KEYWORDS.  Useful for mixing unstable pack-
                     ages in with a normally stable  machine  or  vice  versa.
                     This will allow you to override ACCEPT_KEYWORDS.

I would be interested to know what was put into package.keywords that caused portage to NOT try and downgrade.
Comment 3 Ed Catmur 2004-03-04 05:55:50 UTC
The line I have in package.keywords is:

=sys-kernel/linux-headers-2.4* -*

This syntax makes -* packages matching =sys-kernel/linux-headers-2.4* available:

$ etcat -v =linux-headers-2.4.23
[ Results for search key           : =linux-headers-2.4.23 ]
[ Candidate applications found : 1 ]
 
 Only printing found installed programs.
 
*  sys-kernel/linux-headers-2.4.23 :
        [  I] 2.4.23 (0)

HTH.
Comment 4 SpanKY gentoo-dev 2004-03-04 05:56:57 UTC
why didnt you use package.mask instead of package.keywords
Comment 5 Ed Catmur 2004-03-04 06:03:45 UTC
As I understand the package.* files:

package.mask can only mask packages.
package.unmask can only unmask packages masked in the global profile.mask file:
>          Note that this
>          does not override packages that are masked via  KEYWORDS.
Thus package.keywords is the only way to override the KEYWORDS variable short of duplicating the ebuild into one's overlay.
Comment 6 SpanKY gentoo-dev 2004-03-04 06:08:58 UTC
what the warning means if you have say 'sys-kernel/linux-headers' in package.mask then putting 'sys-kernl/linux-headers x86' in package.keywords wont unmask it
Comment 7 Aron Griffis (RETIRED) gentoo-dev 2004-03-04 08:34:02 UTC
SpanKY, he's right... There's no way to duplicate the behavior he wants except to add the line he mentioned to /etc/portage/package.keywords (and leave -* in KEYWORDS in the ebuild)

This is a bastardization of how -* was "intended" to be used in KEYWORDS.  It would be better to fix this another way in portage.  For example, maybe it should be possible to have the following in package.keywords to indicate any keywords are acceptable:

=sys-kernel/linux-headers-2.4* *

I guess I'll reopen this bug and assign to the portage team for continued investigation.
Comment 8 Marius Mauch (RETIRED) gentoo-dev 2004-03-04 08:57:19 UTC
Haven't checked anything, just how I think it works:
"-* foo bar" in KEYWORDS means: doesn't work on anything except foo and bar
"foo bar" in KEYWORDS means: works on foo and bar, untested on other archs

Now _depending_ on -* being present in KEYWORDS means that you depend on stuff that doesn't work anywhere (from a semantic POV).

From the technical POV -* in package.keywords is just a token as any other one  as package.keywords code doesn't know about the semantics, it's just a simple matching routine.

Now the meaning of -* for linux-headers can't be "doesn't build" or "doesn't run" as it's "just" static data. So what does it mean here ?

Btw, this is another reason why I really don't like -* being used as a replacement for package.mask.
Comment 9 Aron Griffis (RETIRED) gentoo-dev 2004-03-04 14:19:54 UTC
Genone, I agree with your assessment...  Ed is presently relying on unintended behavior that is subject to change.

Ed, you need to do one of the following: (1) Put linux-headers in your overlay so that you can control the keywords in the ebuild and/or (2) File a bug that explains why you need linux-headers-2.4.23 to be marked stable instead of the currently-marked version.

I'll leave -* in linux-headers for now, but that is no guarantee that ebuilds will continue to follow that pattern in the future.
Comment 10 Ed Catmur 2004-03-04 17:28:30 UTC
OK; thanks for clearing that up. I apologise for wasting everyone's time; I'll try not to depend on unintended behaviour in future.
Comment 11 Robert Moss (RETIRED) gentoo-dev 2004-08-07 19:18:40 UTC
Is there any update on this? This has bitten me several times since my move to AMD64. Various packages (not necessarily - in fact not at all - linux-headers) require the use of keywords other than amd64 or ~amd64. It would be nice if something along the lines of "sys-kernel/linux-headers *" worked - obviously * has a special meaning, but I'm sure you catch my drift.

Please feel free to close this again if I'm hankering after something that just isn't going to happen. But it would be really helpful for testing as-yet-untested packages...
Comment 12 Nicholas Jones (RETIRED) gentoo-dev 2004-08-13 22:55:26 UTC
-* is not legal. It only works because of the implementation details.

* and ~* are legal in 2.0.51.
They mean 'any' arch marked stable/testing.
Comment 13 Robert Moss (RETIRED) gentoo-dev 2004-08-14 04:34:09 UTC
Right, well that's sorted then... any chance you can get that into the docs before 2.0.51 is released?