[paludis-user] Misunderstanding keywords/masks/--override-masks?

Benjamin R. Haskell paludis at benizi.com
Wed Apr 8 21:29:04 UTC 2009

After reading that its packaging of Eclipse handled updates better, I 
added java-overlay[1] to my list of repositories.  But, I'd like to only 
use it for Eclipse (and whatever else Eclipse might depend on that only 
java-overlay can provide).  To that end, I tried adding:

### at the end of keywords.conf :
*/*::java-overlay -*
dev-util/eclipse-sdk::java-overlay ~x86

But, then I was surprised to find that

paludis -pi eclipse-sdk

was pulling in (among other things):

* dev-java/sat4j-pseudo::java-overlay :2 [N 2.0.1]
    Reasons: *dev-util/eclipse-sdk-3.4.1:3.4::java-overlay

which is keyworded "~amd64 ~x86".

So, as an experiment, I tried adding '*/* -*' as the last line of 
keywords.conf, and was surprised that 'paludis -pi eclipse-sdk' worked at 
all, but also that there was a new "Checking for possible errors..." step 
(new in 0.36?).

Question 1: why doesn't '*/* -*' as the final line of keywords.conf 
keyword-mask everything?

Is this a "protect the user from himself" feature?

After that, I removed that line, and tried the --dl-override-masks flag, 
changing it to 'none'.

Question 2: Why is the default for --dl-override-masks 'tilde-keyword 
and license', rather than 'none'?

Either I'm misinterpreting the intent, or 'license' in particular 
completely flies in the face of having a list of licenses the user wants 
to accept.  (e.g. if something is MIT-licensed, and the user doesn't want 
MIT-licensed things, will paludis slip it in anyway?)

That added some things back into a 'blocking' 
state (had to '~x86' java-virtuals/jaxb-virtual::java-overlay and 
java-virtuals/stax-api::gentoo.)  But, there were still things I hadn't 
~x86'ed that were being pulled in from ::java-overlay:

* dev-java/sat4j-core::java-overlay :2 [N 2.0.1]
    Reasons: *dev-java/sat4j-pseudo-2.0.1:2::java-overlay, *dev-util/eclipse-sdk-3.4.1:3.4::java-overlay
* dev-java/sat4j-pseudo::java-overlay :2 [N 2.0.1]
    Reasons: *dev-util/eclipse-sdk-3.4.1:3.4::java-overlay

Question 3: Am I completely misunderstanding the use of the '~x86' 

Why is 'dev-java/sat4j-core::java-overlay' listed by 'paludis -q' as '* ~: 
keyword (unstable accepted)' with the following as the tail of 

*/*::java-overlay -*
dev-java/eclipse-sdk::java-overlay ~x86
java-virtuals/jaxb-virtual::java-overlay ~x86

Question 4: Do I have an XY problem[2]?

Is there some other, more-obvious way that I'm missing where you can mask 
all-but-a-few packages from a particular repository?  I also tried adding 
'*/*::java-overlay' to package_mask.conf, and adding particular packages 
to package_unmask.conf, but that didn't get me any further than my 
attempts above with keywords.conf.

Question 5: What's the best way to see how paludis is resolving 

I added '--log-level debug', but the 183,555 lines of output doesn't 
contain any of { "keyword", "~", "x86", "tilde" }.  How would one use 
paludis to obtain something like (this is very over-simplified, and 
fictionalized, but shows what *types* of events I'd like to see):

Trying to install dev-util/eclipse-sdk
Trying to install dev-util/eclipse-sdk-3.4.1::java-overlay
Added build dependency '>=virtual/jdk-1.5'
Satisfied '>=virtual/jdk-1.5' with 'virtual/jdk-1.6::installed'
Trying to satisfy build dependency 'dev-java/cldc-api:1.1'
Adding 'dev-java/cldc-api-1.1.0' to install list
Keywords mask 'dev-java/cldc-api-1.1.0' (KEYWORDS: ~amd64 ~x86)
Cannot install 'dev-java/cldc-api'
Cannot satisfy 'dev-java/cldc-api:1.1'

Thanks for any assistance, and as always, apologies if I'm overlooking 
something blatantly obvious.


[1] java-overlay svn+http://overlays.gentoo.org/svn/proj/java/java-overlay/
[2] "XY problem" http://perlmonks.org/?node_id=542341

More information about the paludis-user mailing list