Summary: | emerge bad handle on --exclude with masked packages | ||
---|---|---|---|
Product: | Portage Development | Reporter: | Phr33d0m <phr33d0m> |
Component: | Core - Dependencies | Assignee: | Portage team <dev-portage> |
Status: | UNCONFIRMED --- | ||
Severity: | normal | CC: | jer |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Phr33d0m
2012-02-10 01:55:22 UTC
(In reply to comment #0) > I'm unsure if this is the default expected behaviour --exclude is only meant for temporary exclusion from the merge list. Neither --exclude nor package.mask will help you with an unsatisfied dependency, because those can only be solved by masking the package that pulled in the unsatisfied dependency (repeat as necessary until you reach root package). Maybe a duplicate of bug 372569, or something to document in the handbook. (In reply to comment #0) > I'm unsure if this is the default expected behaviour, as I happened to find it > quite a annoyng in situations like this: > > # emerge $(eix -n --only-names gtk-engines-) --exclude gtk-engines-quartz Oh I didn't understand what you where trying to do. Please disregard comment #1. Maybe you can just do something like this: emerge $(eix -n --only-names gtk-engines- | grep -v gtk-engines-quartz) Emerge would need to check against the excludes list twice, both before AND after dep calculation. Right now it only happens after, so that's why I get the mask error when I try to exclude the masked package. This is why I reported this, because I'm still unsure if this is an expected behaviour in emerge. And answering to your suggestion, yes there are multiple ways of doing it: As you said: # emerge $(eix -n --only-names gtk-engines- | grep -v gtk-engines-quartz) or: emerge $(eix -n --only-names gtk-engines- -! quartz) etc... But that's not emerge related solution. That's why I gave this example: # emerge gtk-engines-quartz --exclude gtk-engines-quartz Where an error appears. Regards. (In reply to comment #3) > Emerge would need to check against the excludes list twice, both before AND > after dep calculation. Right now it only happens after, so that's why I get the > mask error when I try to exclude the masked package. This is why I reported > this, because I'm still unsure if this is an expected behaviour in emerge. The behavior is expected. An atom given on the command line is a dependency much like any other, and --exclude is only intended to prevent packages from being built/installed, not to prevent dependencies (from the command line or any other source) from being satisfied. Since grep -v seems like a perfectly reasonable solution for your use case, I think it would be a waste of code (unnecessary bloat) to create a special interaction between command line atoms and --exclude. |